[英]Which is better to use useMemo or useCallback when the function comes as a dependency on useMemo dependency array
I have a piece of code wrapped in useMemo that uses a function as a dependency that returns some data, is it worth using useMemo in this case since we return data, or is it better to useCallback我有一段代码包装在 useMemo 中,它使用 function 作为返回一些数据的依赖项,在这种情况下是否值得使用 useMemo 因为我们返回数据,还是使用 Callback 更好
Example:例子:
// useMemo vs useCallback ?
const getConfigs = useCallback((configs)=> {
return configs.filter(...some filtering logic)
}, [])
const getConfigs = useMemo(()=> {
return configs.filter(...some filtering logic)
}, [props.configs])
const someMemoData = useMemo(()=>{
return {
names: props.names,
configs: getConfigs(props.configs) or getConfigs in case useMemo
}
}, [props.names, getConfigs, props.configs])
If you return data use useMemo如果你返回数据使用 useMemo
If you return function use useCallback如果你返回 function 使用 useCallback
They both accept same parameters.他们都接受相同的参数。 Their first argument is a callback.
他们的第一个参数是回调。 The only difference is that:
唯一的区别是:
useMemo(cb) returns cb()
useCallback(cb) returns cb
useCallback(() => {})
is same as useMemo(() => () => {})
useCallback(() => {})
与useMemo(() => () => {})
相同
Your getConfigs returns a function, so better use useCallback for it.您的 getConfigs 返回 function,因此最好使用 useCallback。 While someMemoData returns object, use useMemo
当 someMemoData 返回 object 时,使用 useMemo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.