@ -1,4 +1,3 @@
# beginWork 和 completeWork
在 [[React 源码的碎片记录]] 中写了,在 React 的 Fiber 递归阶段会有两个函数,分别执行递和归两个动作,它们就是 beginWork 和 completeWork
```javascript
function beginWork(current, workInProgress, renderLanes) {}
@ -1,5 +1,3 @@
# effectList 的生成
在 React Fiber 的 completeWork 阶段,React 会将所有被标记上 effectTag 的 Fiber 节点通过一个单向链表给连接起来,这样在 commit 阶段的时候,只需要遍历这一条链表就能快速更新页面
如果一个 Fiber 节点在 completeWork 阶段抛出异常,那么它的父 Fiber 节点会被打上 Incomplete 标记,表示当前的父 Fiber 下的子 Fiber 树没有完成构建
# 奇怪的疑惑
- [ ] 什么是双缓存?React 是如何实现双缓存的
- [x] JSX 和 Fiber 的关系
首屏渲染时 JSX 是创建 Fiber 节点的依据,更新渲染时,JSX 会和 current Fiber 树中的节点做对比生成 workInProgress Fiber
# 随时随地
[[简单的 React 思考 - 状态管理工具]]
[[简单的 React 思考 - Context]]
[[简单的 React 思考 - Fiber 创建]]
@ -7,4 +5,5 @@
[[简单的 React 思考 - useReducer]]
[[随时随地/奇怪的疑惑]]
[[React Hooks 的碎片记录]]
[[useEffect 和 Debounce]]
[[管理后台中的 Tab 功能]]
# 简单的 React 思考 - Context
关于 React 中 Context 作为状态管理工具的思考具体可以这一篇 [[简单的 React 思考 - 状态管理工具]]
这里主要是对 Context API 的简单记录
# 简单的 React 思考: Fiber 创建
首先先来看一段代码
![[简单的 React 思考 - Fiber 创建.png]]
# 简单的 React 思考: useCallback / useMemo
useCallback 和 useMemo 都是 React 里边比较简单的 Hook,先看看官网对于这两个 Hook 的介绍。
# 简单的 React 思考 - useReducer
在一些需要连续更新状态的场景下,useReducer 会比 useState 更加的合适