useMemo useEffect

本文详细解析了React Hooks中的useMemo和useEffect的区别及使用场景。useEffect在DOM更新后执行,常用于副作用管理;useMemo在DOM更新前触发,用于优化性能,特别是在处理引用类型和复杂计算时。同时,文章探讨了useCallback在传递函数作为props时的作用,以减少不必要的重渲染。了解这些Hook的正确用法对于提升React应用的性能至关重要。
摘要由CSDN通过智能技术生成

useMemo和useEffect有什么区别?(使用场景推荐阅读)_hsany330的博客-CSDN博客_usememo和useeffect的区别

什么时候使用useCallback和useMemo?_Windy_Coding的博客-CSDN博客_什么时候使用usecallback

userEffect:  setState时先触发DOM更新,然后触发effect,即:effect只能在DOM更新后再触发

userMemo:setState时触发DOM更新,DOM变化触发相应的Memo然后触发dom中的函数,即:memo是在DOM更新前触发的,就像官方所说的,类比生命周期就是shouldComponentUpdate

但 react 的 hook(useEffect, useMemo, useCallback 等) 会有一个 deps array(第二个参数),而这些 hook 要不要再次被计算取决于本次 deps array 中的数据与上次 deps array 中的数据进行一次浅 diff,如果不相等则再次运行这个 hook,反之则不执行。

我们都知道在 js 在存储变量时,简单来说会把引用类型的地址存在数据栈中,而将值存在数据堆中,而浅 diff 的原理是比较二者在栈中存储的数据是否相同,并不关心堆中的情况

useMemo常用在以下两种场景的优化中:1)引用类型的变量   2)需要大量时间执行的计算函数。

当子组件接收一个函数props时,一般会使用useCallback来缓存这个函数,减少不必要的re-render

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值