# react 进阶

# 里程碑

  • v16.0:

    • 为了解决之前大型 React 应用一次更新遍历大量虚拟 DOM 带来个卡顿问题,React 重写了核心模块 Reconciler ,启用了 Fiber 架构;
    • 为了在让节点渲染到指定容器内,更好的实现弹窗功能,推出 createPortal API;
    • 为了捕获渲染中的异常,引入 componentDidCatch 钩子,划分了错误边界 。
  • v16.2:

    • 推出 Fragment ,解决数组元素问题。
  • v16.3:

    • 增加 React.createRef() API,可以通过 React.createRef 取得 Ref 对象;
    • 增加 React.forwardRef() API,解决高阶组件 ref 传递问题;
    • 推出新版本 context api,迎接Provider / Consumer 时代;
    • 增加 getDerivedStateFromProps 和 getSnapshotBeforeUpdate 生命周期 。
  • v16.6:

    • 增加 React.memo() API,用于控制子组件渲染;
    • 增加 React.lazy() API 实现代码分割;
    • 增加 contextType 让类组件更便捷的使用context;
    • 增加生命周期 getDerivedStateFromError 代替 componentDidCatch 。
  • v16.8:

    • 全新 React-Hooks 支持,使函数组件也能做类组件的一切事情。
  • v17:

    • 事件绑定由 document 变成 container ,移除事件池等。