假设组件内部有一个函数,例如:
const MyComponent = ({data}) => {
const myFunction = a => a+1;
return <div>
data.map(num => myFunction(num))
</div>
}
如果已经使用相同的参数调用了myFunction() ,我不希望再次调用它。在此处添加缓存的最佳做法是什么?
假设组件内部有一个函数,例如:
const MyComponent = ({data}) => {
const myFunction = a => a+1;
return <div>
data.map(num => myFunction(num))
</div>
}
如果已经使用相同的参数调用了myFunction() ,我不希望再次调用它。在此处添加缓存的最佳做法是什么?
不, useCallback 和 useMemo 在这种特定情况下有不同的用途,请阅读此处,您需要自己创建一些缓存机制或从 3rd 方包中获取一个:
const MyComponent = ({data}) => {
const cacheRef = React.useRef({})
const myFunction = a => {
const cache = cacheRef.current;
if(cache[a]){
return cache[a];
} else{
cache[a] = a+1;
return cache[a];
}
};
return <div>
{data.map(num => myFunction(num))}
</div>
}