开发环境配置
Fiber
解决问题
- 利用浏览器空闲时间,拒绝长时间占用主线程
- 放弃递归只采取循环,因为循环可以被中断
- 任务拆分,将任务拆分成一个个小的任务
实现思路
- 构建fiber(可中断)
- 提交Commit(不可中断)
DOM初始渲染:virtualDOM -> Firber->DOM
DOM更新操作:newFiber vs oldFiber -> FIber[] ->DOM
Fiber对象
{
type:
props:
…
}
Fiber算法
jsx代码 babel转化
(任务队列 任务?)
render 执行内容
- 向任务队列添加任务
- 指定浏览器空闲时间执行任务
render实现步骤
1.src下index.js jsx代码(如何转化成正常代码)
2.createElement方法
3.render方法展示到页面(将元素最顶层依次查找)
4.Misc杂项文件夹(taskQueue)