You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
738 B
738 B
commitMutationEffects 对应 commit 中的 mutation 阶段,这个方法内部是一个 while 循环,遍历 effectList 链表,遍历到的每一个 Fiber 节点首先会判断是否存在 ConentReset 标记,这个标记表示 Fiber 是否需要重置文本节点
commitResetTextContent
然后会判断是否存在 Ref 标记
commitDetachRef
然后进入 mutation 阶段最重要的逻辑:判断 Fiber 阶段是否存在以下 effectTag
- Placement 插入DOM
- Update 更新属性
- Deletion 删除 DOM 节点
- Hydrating SSR 相关
然后根据 effectTag 不同进入不同的处理逻辑
Placement
commitPlacement 如果当前环境不支持 mutation 会直接返回,ReactDom 下是支持的