react 类组件 和 函数组件 生命周期对比

42 阅读1分钟
生命周期阶段类组件方法函数组件 Hook 实现关键差异与说明
​挂载阶段​constructor使用 useState初始化状态函数组件无需构造函数,状态通过 useState直接定义。
render组件函数体本身函数组件直接返回 JSX。
componentDidMountuseEffect(() => { ... }, []) (依赖数组为空)useEffect在组件挂载到DOM后执行。
​更新阶段​shouldComponentUpdateReact.memoReact.memo对 props 进行浅比较以避免不必要的重渲染。
render组件函数体本身-
componentDidUpdateuseEffect(() => { ... }) (无依赖数组) 或 useEffect(() => { ... }, [dep])依赖数组控制效应函数仅在特定依赖变更后执行,模拟更新逻辑。
getSnapshotBeforeUpdate暂无极简的 Hook 等价物此生命周期方法在类组件中用于捕获DOM更新前的信息。
​卸载阶段​componentWillUnmountuseEffect的清理函数 (return () => { ... })清理函数在组件卸载前执行,用于清除定时器、取消订阅等。
​错误处理​componentDidCatch static getDerivedStateFromError​暂不支持​目前,错误边界(Error Boundary)功能必须通过类