YuJian
3 years ago
1 changed files with 6 additions and 5 deletions
@ -1,14 +1,15 @@ |
|||||||
- [ ] 什么是双缓存?React 是如何实现双缓存的 |
- [x] 什么是双缓存?React 是如何实现双缓存的 |
||||||
|
React 运行时自始至终都存在着两颗 Fiber 树,一颗叫做 Current 另一棵叫 WorkInProgress |
||||||
- [x] JSX 和 Fiber 的关系 |
- [x] JSX 和 Fiber 的关系 |
||||||
首屏渲染时 JSX 是创建 Fiber 节点的依据,更新渲染时,JSX 会和 current Fiber 树中的节点做对比生成 workInProgress Fiber |
首屏渲染时 JSX 是创建 Fiber 节点的依据,更新渲染时,JSX 会和 current Fiber 树中的节点做对比生成 workInProgress Fiber |
||||||
- [x] React Components 与 React Element 的关系 |
- [x] React Components 与 React Element 的关系 |
||||||
Components 会作为 React.createElement 的第一个参数,也就是 type 参数 |
Components 会作为 React.createElement 的第一个参数,也就是 type 参数 |
||||||
- [ ] 什么是深度优先遍历 |
- [x] 什么是深度优先遍历 |
||||||
- [ ] 在 React 18 ,beginWork 这个方法似乎做了一些修改,具体修改了什么? |
[[算法之美 - 深度优先遍历]] |
||||||
- [ ] 什么是按位或? |
- [ ] 什么是按位或? |
||||||
- [ ] 为什么 React 要尽可能的复用 Fiber, 是因为创建新的 Fiber 非常消耗性能吗? |
- [ ] 为什么 React 要尽可能的复用 Fiber, 是因为创建新的 Fiber 非常消耗性能吗? |
||||||
- [x] 是不是在 React 运行时中,自始至终都存在两个 Fiber Tree,只是他们的名字会来回交换,一会我是 current 一会他是 current ? |
- [x] 是不是在 React 运行时中,自始至终都存在两个 Fiber Tree,只是他们的名字会来回交换,一会我是 current 一会他是 current ? |
||||||
- 是的 |
是的 |
||||||
- [ ] reconcileChildren 的具体功能? |
- [ ] reconcileChildren 的具体功能? |
||||||
- [x] reconciler 阶段会深度优先遍历找出所有需要更新或者发生更改的 Fiber 节点,然后遍历出完整的Fiber,然后作为参数传递给 commitRoot 函数进入 commit 阶段,那么在 commit 阶段也要对 Fiber 树进行深度优先遍历吗? |
- [x] reconciler 阶段会深度优先遍历找出所有需要更新或者发生更改的 Fiber 节点,然后遍历出完整的Fiber,然后作为参数传递给 commitRoot 函数进入 commit 阶段,那么在 commit 阶段也要对 Fiber 树进行深度优先遍历吗? |
||||||
- [[React 的深入探索 - effectList 链表]] |
[[React 的深入探索 - effectList 链表]] |
Loading…
Reference in new issue