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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值