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

react中的useEffect

是函数组件中执行的副作用,副作用就是指每次组件更新都会执行的函数,可以用来取代生命周期。

1. 基本用法

import { useEffect } from "react";
useEffect(()=>{console.log('副作用');   
});

2. 副作用分为需要清除的和不需要清除
假如设置一个定时器,当组件卸载时需要将定时器关闭,这就是需要清除的。

需要清除的需要在副作用中返回一个函数即可,返回的函数编写需要的代码逻辑。

import { useEffect } from "react";
useEffect(()=>{return () => {console.log('组件卸载');}
});

不需要清除的就不需要写入return

3. 传入第二个参数
不传入,则组件更新时就会执行。

传入空数组[]

则代表只运行一次(仅在组件挂载和卸载时执行),当副作用没有返回函数时,可以当做生命周期componentDidMount使用,返回函数时可以当做生命周期componentWillUnmount使用

// 当做 componentDidMount使用
import { useEffect } from "react";
useEffect(()=>{console.log('页面渲染完成');
}, []);
// 当做 componentWillUnmount使用
import { useEffect } from "react";
useEffect(()=>{return () => {console.log('组件卸载');}
}, []);

传入数组 [item]

import { useEffect} from "react";
import { useSelector} from "react-redux";const { num } = useSelector((state) => ({num: state.num,
}));
useEffect(()=>{console.log('执行了');
}, [num]);

当数组不为空时,组件更新时,会检测num的值,若更新后的值与旧值不一样则会调用effect,若相同则会跳过执行。

若数组传入多个参数,只要有一项有变更就会执行effect。

http://www.lryc.cn/news/15402.html

相关文章:

  • 故障安全(Crash-Safe) 复制
  • Spring aop之针对注解
  • 【JavaScript速成之路】JavaScript数据类型转换
  • 21-绑定自定义事件
  • 【Mysql】触发器
  • CODESYS开发教程11-库管理器
  • 【UnityAR相关】Unity Vuforia扫图片成模型具体步骤
  • 2023年全国最新保安员精选真题及答案2
  • keil5安装了pack包但是还是不能选择device
  • 秒杀系统设计
  • 全面认识数据指标体系
  • 热榜首推!阿里内部都在用的Java后端面试笔记,主流技术全在里面了!备战2023Java面试,拿理想offer
  • Android架构设计——【 APT技术实现butterknife框架 】
  • 线程的基本概念
  • java面试题中常见名词注解
  • SpringAOP从入门到源码分析大全,学好AOP这一篇就够了(二)
  • 华为OD机试 - 斗地主(C++) | 附带编码思路 【2023】
  • 【存储】etcd的存储是如何实现的(3)-blotdb
  • 基于MATLAB开发AUTOSAR软件应用层模块-part21.SR interface通信介绍(包括isupdated判断通信)
  • Kotlin新手教程八(泛型)
  • 性能测试知多少?怎样开展性能测试
  • code-breaking之javacon
  • Android 字符串替换,去除空格等操作
  • 因“AI”而“深” 第四届OpenI/O 启智开发者大会高校开源专场25日开启!
  • CATCTF wife原型链污染
  • 浅谈Java线程池中的ThreadPoolExecutor工具类
  • 分析过程:服务器被黑安装Linux RootKit木马
  • 运动型蓝牙耳机推荐哪款、最新运动蓝牙耳机推荐
  • Python爬虫(9)selenium爬虫后数据,存入mongodb实现增删改查
  • gulimall技术栈笔记