当前位置: 首页 > news >正文

React 生命周期概览

React 生命周期在函数组件中主要由 Hooks(特别是 useEffect 来管理;而在类组件中则通过生命周期方法(如 componentDidMount)来处理。


🧱 函数组件生命周期分 3 个阶段:

阶段对应 Hook含义或作用
✅ 挂载useEffect(() => {...}, [])组件首次渲染后执行(类似 componentDidMount
🔁 更新useEffect(() => {...}, [依赖])依赖值变化时触发
❌ 卸载useEffect(() => { return () => {...} }, [])组件卸载前执行清理逻辑(比如取消定时器)

✅ 示例:函数组件完整生命周期

import { useEffect } from "react";function MyComponent({ name }) {// 挂载阶段useEffect(() => {console.log("组件挂载");// 卸载阶段(return 中写清理逻辑)return () => {console.log("组件卸载");};}, []);// 更新阶段useEffect(() => {console.log("name 更新为", name);}, [name]);return <div>Hello, {name}</div>;
}

📜 类组件生命周期(供对比理解)

如果你用 class 编写组件,它的生命周期是这样分布的:

生命周期方法触发时机
constructor创建组件实例时
componentDidMount组件挂载后(初次渲染)
shouldComponentUpdate更新前判断是否更新
componentDidUpdate组件更新完成后
componentWillUnmount组件卸载前

类组件写法(示例):

class MyComponent extends React.Component {componentDidMount() {console.log("挂载完毕");}componentDidUpdate() {console.log("更新完毕");}componentWillUnmount() {console.log("即将卸载");}render() {return <div>Hello</div>;}
}

✅ 常见用途(函数组件中)

用途写法
获取数据(仅首次)useEffect(() => { fetchData() }, [])
清除计时器/订阅等资源return () => clearInterval(...)
监听 props 或状态更新useEffect(() => {...}, [propOrState])

🧠 小贴士:多个 useEffect 是互不干扰的

React 会按顺序执行它们(挂载 → 更新 → 卸载),你可以组织逻辑更清晰。


✅ 总结一句话

在函数组件中,useEffect 让你处理副作用逻辑(网络请求、订阅、手动更新 DOM 等),你可以通过依赖数组精准控制触发时机,相当于类组件生命周期的统一替代。

http://www.lqws.cn/news/516295.html

相关文章:

  • Happy-LLM-Task06 :3.1 Encoder-only PLM
  • configure: error: no acceptable C compiler found in $PATH
  • UE5初学者教程笔记(一)
  • Android 10.0 java.lang.IllegalStateException The content of the adapter has
  • Bright Data亮数据 MCP + N8N x AI 新闻编辑:基于亮数据,数据采集到观点摘要工作流自动化实践
  • 20250625解决在Ubuntu20.04.6LTS下编译RK3588的Android14出现cfg80211.ko的overriding问题
  • LE AUDIO---Chapter 2. The Bluetooth® LE Audio architecture
  • 个人技术文档库构建实践:基于Cursor和GitHub的知识管理系统(含cursor rules)
  • 实战使用 Docker Compose 搭建 Redis Cluster 集群
  • CommunityToolkit.Mvvm 重构激光直写控制软件
  • STM32G070x 单片机项目代码解析:基于 HAL 库的嵌入式系统开发
  • oracle 删除数据
  • 【计算机网络】第二章:物理层
  • 如何轻松恢复出厂设置 Android 手机
  • 华为云Flexus+DeepSeek征文|基于Dify+ModelArts打造智能客服工单处理系统
  • 如何将FPGA设计验证效率提升1000倍以上(1)
  • 云原生与人工智能的融合:从弹性架构到智能运维的IT新范式
  • HCIA-OSPF基础
  • 【机器学习深度学习】张量基本操作
  • AR/VR 显示画质失真?OAS 体全息光栅案例来解决
  • Git知识梳理常见问题
  • Linux - firewall
  • 二叉树理论基础
  • python的kivy框架界面布局方法详解
  • 智能手机是人类的寄生物
  • 高通手机跑AI系列之——人脸变化算法
  • 机器学习复习
  • 《MySQL 技术内幕(第5版)》逐章精华笔记第七章
  • 【学习笔记】3.3 Decoder-Only PLM
  • 芯片战争升级:进口马维尔VS自研中兴微,解码格行随身WiFi性能密码,格行随身WIFI到底行不行