react 类组件 和 函数组件 声明周期 对比

React 的类组件和函数组件在生命周期方面存在一些差异。以下是它们之间的对比:

类组件的生命周期

React 类组件的生命周期可以分为三个阶段:挂载、更新和卸载。

1、挂载阶段:

constructor():组件实例化时调用,用于初始化状态和绑定方法。

componentWillMount()(已弃用):在组件挂载前调用,但在React 17.0之后,该钩子已被废弃。

render():渲染组件的UI。

componentDidMount():组件挂载后调用,可以进行 DOM 操作或发起数据请求。

2、更新阶段:

shouldComponentUpdate():在组件更新前调用,返回一个布尔值,决定是否进行更新。

componentWillUpdate()(已弃用):在组件更新前调用,但在React 17.0之后,该钩子已被废弃。

render():重新渲染组件的UI。

getSnapshotBeforeUpdate():在 DOM 更新前被调用,可用于获取某些 DOM 的值(如滚动位置)。

componentDidUpdate():组件更新后调用,用于处理更新前后的状态差异。

3、卸载阶段:

componentWillUnmount():组件即将被卸载时调用,用于清理定时器或取消订阅等操作。

函数组件的生命周期

React 函数组件没有传统的生命周期方法,但在 React Hooks 的引入后,函数组件可以模拟类组件的生命周期。

1、初始化阶段:

useState():用于在函数组件中添加状态。这类似于类组件的 state。

useEffect():用于处理副作用,如 DOM 操作或数据请求。在首次渲染后和更新后都会调用,这类似于类组件的 componentDidMount、componentDidUpdate 和 componentWillUnmount 的组合。

2、更新阶段:

useEffect():当组件的 props 或 state 发生变化时,会重新运行 useEffect 中的函数。

3、卸载阶段:

useEffect():在组件卸载前,可以通过在 useEffect 的清理函数中执行必要的清理操作(如清除定时器或取消订阅),来模拟 componentWillUnmount 的行为。

学习建议:

深入了解类组件和函数组件的基础概念和用法。

学习并理解类组件的生命周期方法及其用途。

学习 React Hooks,特别是 useState 和 useEffect,并理解它们如何模拟函数组件的生命周期。

通过编写实际项目中的组件来实践这些概念,以加深理解。

查阅官方文档和社区资源,以获取更多关于 React 生命周期和 Hooks 的信息

相关推荐
前端大波14 分钟前
Sentry 每日错误巡检自动化:设计思路与上手实战
前端·自动化·sentry
Highcharts.js1 小时前
适合报表系统的可视化图表|Highcharts支持直接导出PNG和PDF
javascript·数据库·react.js·pdf
ZC跨境爬虫1 小时前
使用Claude Code开发校园交友平台前端UI全记录(含架构、坑点、登录逻辑及算法)
前端·ui·架构
慧一居士1 小时前
Vue项目中,何时使用布局、子组件嵌套、插槽 对应的使用场景,和完整的使用示例
前端·vue.js
叫我一声阿雷吧2 小时前
JS 入门通关手册(35):执行上下文、调用栈与作用域链深度解析
javascript·作用域链·js进阶·执行上下文·调用栈·变量提升·闭包原理
Можно2 小时前
uni.request 和 axios 的区别?前端请求库全面对比
前端·uni-app
M ? A2 小时前
解决 VuReact 中 ESLint 规则冲突的完整指南
前端·react.js·前端框架
Jave21083 小时前
实现全局自定义loading指令
前端·vue.js
奔跑的呱呱牛3 小时前
CSS Grid 布局参数详解(超细化版)+ 中文注释 Demo
前端·css·grid
木斯佳3 小时前
前端八股文面经大全:影刀AI前端一面(2026-04-01)·面经深度解析
前端·人工智能·沙箱·tool·ai面经