useMemo vs. useEffect + useState
2022-08-30 03:02:37
使用(例如,对于密集函数调用)而不是使用 和 的组合有什么好处吗?useMemo
useEffect
useState
下面是两个自定义钩子,它们在第一次呈现时的工作方式完全相同,此外,返回值还在第一次渲染上:useMemo
null
useEffect & useState
import { expensiveCalculation } from "foo";
function useCalculate(someNumber: number): number {
const [result, setResult] = useState<number>(null);
useEffect(() => {
setResult(expensiveCalculation(someNumber));
}, [someNumber]);
return result;
}
使用备忘录
import { expensiveCalculation } from "foo";
function useCalculateWithMemo(someNumber: number): number {
return useMemo(() => {
return expensiveCalculation(someNumber);
}, [someNumber]);
};
每次参数变化时,两者都计算结果,踢入的记忆在哪里?someNumber
useMemo