useEffect 将在发生重新渲染以及状态值更改时执行该函数。 useMemo 的工作方式也与 useEffect 类似,当发生重新渲染以及状态值更改时,它将执行该函数。
但这两个钩子(useMemo 和 useEffect)有什么不同
useEffect
和 useMemo
根据其依赖项更改重新渲染。
但是
useEffect
用于处理副作用并且不返回任何值
useEffect(()=>{
const timer = setInterval(() => {
setIsMounted(true);
}, 1000);
return () => {
clearInterval(timer);
};
},[])
并且
useMemo
用于缓存重新渲染之间的计算
//caching the value returned from function getValueByState
const value = useMemo(
() => getValueByState(state),
[state]
);