是否有使用任何好处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
变化时都计算结果,kick useMemo
in的记忆在哪里?