useEffect

1 篇文章 0 订阅

react函数组件没有生命周期怎么解决?

1.useEffect是什么?

在react中,可以在生命周期中执行副作用操作,在react hooks中,可以在useEffect中执行副作用操作。(:副作用的来源:配置文件、用户的输入、数据库等等,所有的外部交互都有可能产生副作用,副作用会给程序带来安全隐患和不确定性,要尽可能的控制副作用在可控制的范围内发生。)

在 react 中componentDidMountcomponentDidUpdatecomponentWillUnmount 这三个生命周期时候会执行。

2.函数结构

useEffect()两个参数,第一个参数是要执行的函数,第二个参数是一个依赖项数组(根据需求第二个参数可选是否填写)

(1).若不写第二个参数,函数操作每次都会执行 useEffect(method)
(2).若有第二个参数且数组里的变量不为空,则变量有变化时执行副作用操作,无变化则不执行. useEffect(()=>{doSomeThing}, [a]), a 变化时执行(任意一个或全部变化)
(3).有第二个参数但为空,则副作用仅在组件挂载和卸载时执行。useEffect( ()=>{doSomeThing}, [])

3.副作用是否需要清除

(1).无需清除的副作用操作

直接在useEffect( method )中传入操作函数method即可

(2).需要清除的副作用操作

比如监听事件,useEffect( method )在method中添加了一个监听事件,取消监听只需要在method里return一个取消监听的函数即可

4.其他有依赖项数组的hook

待了解------------------------------------------------------------------------

useLayoutEffect、useCallback、useMemo			

useLayoutEffect和useEffect的异同:

用法一样,两个参数,第一个时执行的函数,第二个是依赖项函数
useLayoutEffect会在所有的 DOM 变更之后同步调用 effect(浏览器进行绘制之前完成,即会阻塞浏览器的绘制.)
useEffect不会阻塞浏览器的绘制,大部分情况下都可以使用useEffect,render之后执行回调函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值