如果你想手写一个简易版的react 那么你得先去分析一下reat 更新渲染过程
jsx
- react中通过jsx来编写代码.
babel中通过jsxfunc来进行执行。
vdnom
- 之后react内部会将react元素转变为vdom,这样做是因为直接操作真实的dom会导致重绘,重流问题。
fiber
- react 16最大的改变就在于fiber架构的更新,那么会将之前的vdom 转变为fiber节点,通过child,sibling,等指针转变为链表,那么为什么一定要转变为链表呢,那是因为能通过指针转变为线性结构,一次遍历就好,同时由于各种指针的存在,使得异步中断更新实现。
reconcile
- 协调阶段就是 vdom转变为fiber的过程
commit
- 本周就是对dom的操作更新到页面上,遍历构建好的 fiber 链表,执行 dom 操作,还有函数组件的 effect
- 分为beformutation : 操作dom前,
- mutaion,操作dom时
-
- layout:操作 dom 之后。