2.3 JSX转换Element对象流程

2.3.1 createElement原理揭秘

  1. createElement做的事情大致可以分为:

    1. 初始化参数,比如props、key、ref等

    2. 单独处理key和ref属性,处理props里面的其他属性

    3. 形成Children结构的数组

    4. 通过ReactElement创建Element对象并返回

  2. ReactElement作为一个纯函数,做的事情很简单,就是根据传进来的参数,创建斌返回一个Element对象

2.3.2 closeElement属性揭秘

  1. 原理与createElement差不多,区别在于:

    1. closeElement会复用Element的type、key、ref等关键属性

    2. closeElement会通过assign把原来的Element props和新的props进行合并处理

最后更新于