背景
如果老板问你最近加班的情况是否严重,你如何回答?
可以执行下面一段 Shell 脚本,自动统计特定时间段的代码提交记录。
React 从 v16 开始逐步引入异步可中断的渲染架构。
React 渲染过程可以分为三个阶段 Scheduling、Reconciliation、Commit。
Scheduling 阶段执行任务调度,Reconciliation 阶段更新虚拟 DOM,本文主要讲述这两个阶段。(Commit 阶段更新 UI。e.g. 在浏览器环境中更新 DOM、在移动端环境中更新 Native 视图。)
本文基于目前最新的 React v18.2.0 代码。
JSX 的介绍参考 React 官方文档 JSX 简介。
JSX 编译后会转为名为 React.createElement 的函数调用。
1 | function createElement(type: any, props?: any, ...children: ReactNode[]) |
createElement 函数接收三个参数。
第一个参数为节点类型 type。比如,若在 JSX 中是 div,则 type 为 “div” 字符串;若在 JSX 中是自定义函数组件 CustomComponent,则 type 为 CustomComponent 函数。
第二个参数为节点属性 props。比如,若 JSX 中声明 <div className="wrap">,则 props 为 { className: "wrap" };若 JSX 中声明 <div>,则 props 为 null。
第三个参数为不定参数,每个参数值对应一个当前节点的子节点。