useMemo和useCallback优缺点以及使用场景

本文详细介绍了React Hooks中的useMemo和useCallback的使用,它们都用于缓存以避免不必要的重新计算。useMemo主要用于缓存计算结果,优化状态变化时的性能,而useCallback则专注于缓存函数,防止因组件刷新导致的函数重复创建,提高应用性能。了解这两者的区别有助于更好地优化React应用。
摘要由CSDN通过智能技术生成

useMemouseCallback 接收的参数都是一样

  1. 第一个参数为回调
  2. 第二个参数为要依赖的数据

共同作用:

依赖数据 发生变化, 才会重新计算结果,也就是起到缓存的作用

两者区别

  1. useMemo 计算结果是 return 回来的值, 主要用于 缓存计算结果的值 ,应用场景如: 需要 计算的状态
  2. useCallback 计算结果是 函数, 主要用于 缓存函数,应用场景如: 需要缓存的函数,因为函数式组件每次任何一个 state 的变化 整个组件 都会被重新刷新,一些函数是没有必要被重新刷新的,此时就应该缓存起来,提高性能,和减少资源浪费。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`useMemo` 和 `useCallback` 都是 React 中用来优化性能的 Hook。 `useMemo` 用于对计算结果进行缓存,避免重复计算。它接受两个参数:计算函数和依赖项数组。当依赖项数组中的任意一个元素发生变化时,`useMemo` 会重新计算结果并返回。如果依赖项没有发生变化,则 `useMemo` 直接返回上次的计算结果。 `useMemo` 的使用场景: - 计算某个耗时的、不经常改变的值,比如对一个长列表进行筛选、排序等操作时,可以使用 `useMemo` 对计算结果进行缓存。 - 避免不必要的渲染,比如在父组件传递一个函数给子组件时,可以使用 `useMemo` 缓存这个函数,避免因为父组件重新渲染导致子组件也重新渲染。 `useCallback` 用于缓存一个函数,避免函数的重复创建。它接受两个参数:回调函数和依赖项数组。当依赖项数组中的任意一个元素发生变化时,`useCallback` 会返回一个新的函数。如果依赖项没有发生变化,则 `useCallback` 直接返回上次缓存的函数。 `useCallback` 的使用场景: - 向子组件传递一个回调函数时,可以使用 `useCallback` 缓存这个函数,避免因为父组件重新渲染导致子组件也重新渲染。 - 当一个组件的某个函数依赖于其他状态或属性时,可以使用 `useCallback` 缓存这个函数,避免因为状态或属性的变化导致函数的重复创建。 需要注意的是,`useMemo` 和 `useCallback` 都是用来优化性能的,但是在大部分情况下并不是必需的。只有在组件的性能出现瓶颈时,才需要考虑使用这两个 Hook 进行优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值