react 手写前序分析

55 阅读1分钟

如果你想手写一个简易版的react 那么你得先去分析一下reat 更新渲染过程

jsx

  1. react中通过jsx来编写代码.

image.png babel中通过jsxfunc来进行执行。

vdnom

  1. 之后react内部会将react元素转变为vdom,这样做是因为直接操作真实的dom会导致重绘,重流问题。

image.png

fiber

  1. react 16最大的改变就在于fiber架构的更新,那么会将之前的vdom 转变为fiber节点,通过child,sibling,等指针转变为链表,那么为什么一定要转变为链表呢,那是因为能通过指针转变为线性结构,一次遍历就好,同时由于各种指针的存在,使得异步中断更新实现。

image.png

reconcile

  1. 协调阶段就是 vdom转变为fiber的过程

commit

  1. 本周就是对dom的操作更新到页面上,遍历构建好的 fiber 链表,执行 dom 操作,还有函数组件的 effect
  2. 分为beformutation : 操作dom前,
  3. mutaion,操作dom时
    • layout:操作 dom 之后。