杭州网站改版公司,海报设计怎么做,零件加工网,wordpress英文主题破解版useMemo 和 useCallback 接收的参数都是一样#xff0c;第一个参数为回调#xff0c;第二个参数为要依赖的数据。
相同部分#xff1a;都是依赖数据发生变化#xff0c;才会去更新缓存数据
不同部分#xff1a;
useMemo缓存的是二次计算的数据#xff0c;主要用于缓存…useMemo 和 useCallback 接收的参数都是一样第一个参数为回调第二个参数为要依赖的数据。
相同部分都是依赖数据发生变化才会去更新缓存数据
不同部分
useMemo缓存的是二次计算的数据主要用于缓存计算结果的值跟vue里面的computed大致相同的作用这样避免组件重新渲染的时候再重新执行整个函数导致之前的二次计算也会重新执行一次
示例
import { useMemo, useState } from reactexport default function () {const [num, setNum] useState(0)const [val, setVal] useState();const countNum useMemo(function getCount() {console.log(getCount函数调用了)return num 100;},[num])return(divh1总数:{ countNum }/h1button onClick{() setNum(num 1)}1/buttoninput value{val} typetext onChange{esetVal(e.target.value)} //div)
}
useCallBack计算结果是函数, 主要用于缓存函数应用场景如: 需要缓存的函数因为函数式组件每次任何一个 useState 的变化整个组件都会被重新刷新一些函数是没有必要被重新刷新的此时就应该缓存起来提高性能和减少资源浪费。
示例看我之前的这篇文章react组件渲染性能优化之函数组件-useCallback使用-CSDN博客