[react] 请说说什么是useRef?
本质上 createRef 和 useRef(mountRef) 就是创建一个 {current: initialState} 对象然后返回
useRef 本身经历两个阶段:mountRef 和 updateRef,updateRef 就是把 memoziedState(上面创建的对象)返回。
在 reconciler 阶段,如果有 ref 绑定,会打一个 efftag:Ref
// 位操作标明有 ref 的变更标志位 function markRef(workInProgress: Fiber) { workInProgress.effectTag |= Ref; }
在 commit 阶段,会通过判断是否存在 Ref 的副作用进行对应的处理,class component 返回类实例,而 DOM 则返回 DOM
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论