Repository files navigation
8. 实现update enqueueUpdate单链表类封装
10. 实现utils(解析设置props属性 attr 样式 事件等)
17 scheduleRoot(从根节点开始调度根据虚拟DOM生成fiber等工作的开始进行页面生成或更新渲染)
18 requestIdleCallback(谷歌浏览器每帧执行空余时间利用函数 兼容性问题 react利用MessageChannel进行模拟)
20 performUnitOfWork(结合beginWork 递归 完成此节点的同时收集其副作用completeUnitOfWork)
21 beginWork(创建DOM元素 生成子fiber)
22 updateHostRoot(查找 创建子fiber)
23 updateHostText(查找 创建内容 创建子fiber)
24 updateHost(查找 创建DOM 创建子fiber)
25 updateClassComponent(查找 创建类实例 创建子fiber 类组件的stateNode 是类实例 挂载的时候需注意类实例所属的fiber避免重复挂载 跳跃处理等)
26 updateFunctionComponent(查找 创建函数fiber 创建子fiber 注意hooks索引以及函数组件hooks清空问题处理)
27 结合剩下的方法共同创建react: reconcileChildren,commitRoot,createDOM,updateDOM,updateHostText,updateHostRoot,reconcileChildren,hooks(每个hook都有自己的state和updateQueue))
29. 实现react hooks useState (useState是个语法糖 是基于useReducer实现的)
30. 实现react hooks useReducer
31. 实现react hooks useMemo(缓存属性处理防止错乱更新)
32. 实现react hooks useCallback(缓存方法处理防止错乱更新)
33. 实现react hooks useContext(跨组件传递)
34. 实现react hooks useEffect(非阻塞 操作副作用 宏微任务逻辑 此方法为宏任务处理 useLayoutEffect微任务处理)
35. 实现react hooks useLayoutEffect(阻塞浏览器 queueMicrotask)
36. 实现react hooks useRef(缓存)
About
手写react源码 react-hooks fiber react源码
Topics
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.