React useEffect组件渲染执行操作 组件生命周期 监视器 副作用

介绍

useEffect 是 React Hook 中非常重要的一个,它用于处理副作用(side effects)。副作用包括数据获取、订阅、手动修改 DOM 等等。在 React 函数组件中,useEffect 让你能够在组件渲染后执行某些操作,类似于类组件中的 componentDidMount, componentDidUpdate, 和 componentWillUnmount。

例子

javascript 复制代码
import {useEffect} from "react";

function App() {

    useEffect(()=>{
    //组件渲染完成的回调函数

        const list=getList() //模拟请求获取数据
        console.log(list)

    },[])//[] 依赖项

    function getList(){ //模拟获取数据
        return [1,2,3,4,5]
    }

    return <div  className="box">

    </div>

}

空依赖数组 ([])

只在初始渲染时执行一次

javascript 复制代码
useEffect(() => {
    // 这个副作用只会在组件挂载时执行一次
}, []);

有依赖的数组 [dep1, dep2, ...]

  • 组件挂载时执行一次
  • 当依赖项之一发生变化时,副作用函数会重新执行。
  • 适用场景: 你希望在某些数据或状态变化时执行副作用,比如更新 UI 或发送网络请求等。
javascript 复制代码
useEffect(() => {
    // 只有当依赖项改变时才会执行副作用函数
}, [dep1, dep2]);

没有依赖项(useEffect() 没有第二个参数)

组件初始渲染+组件更新时执行

适用场景: 如果副作用需要在每次渲染后执行,例如实时跟踪某些状态变化,或者清理某些动画、事件监听等。

javascript 复制代码
useEffect(() => {
    // 副作用每次渲染时都会执行
});

清除副作用

清除副作用通常是指在组件卸载时或副作用重新执行之前进行清理操作。这是为了避免内存泄漏、重复执行或不必要的资源占用。

javascript 复制代码
useEffect(() => {
    // 执行副作用


    // 返回清理函数
    return () => {
        // 清理副作用

    };
}, [/* 依赖项 */]);
相关推荐
亿元程序员5 分钟前
亿元Cocos小游戏实战合集指南和答疑
前端
开开心心就好8 分钟前
伪装文件历史记录!修改时间的黑科技软件
java·前端·科技·r语言·edge·pdf·语音识别
饼干哥哥13 分钟前
聊了50个AI出海的市场团队,我总结了达人营销的7宗罪
前端
qq_4275060815 分钟前
vscode使用kimi code的简单经验分享
前端·vscode·ai编程
恋猫de小郭16 分钟前
Claude Code 源码里有意思设定:伪造、投毒、卧底、封号
前端·人工智能·ai编程
Blurpath住宅代理30 分钟前
网页抓取(Web Scraping)完整技术指南:从原理到实战
前端
钰fly34 分钟前
Halcon联合编程适应图像的方法(picture)
开发语言·前端·javascript
木斯佳43 分钟前
前端八股文面经大全:字节跳动前端一面·深度解析(Plus Ultra版)(2026-03-30)·面经深度解析
前端·设计模式·八股·光栅化
酉鬼女又兒1 小时前
零基础快速入门前端DOM 节点操作核心知识点及蓝桥杯 Web 应用开发考点解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯
LXXgalaxy1 小时前
Vue3 + TypeScript 组件开发速查表新手速成手册
前端·javascript·typescript