是否有使用任何好处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 useMemoin的记忆在哪里?