我整理了关于React.memo、useCallback和useMemo的内容

由于有机会涉及React的hooks功能中的React.memo、useCallback和useMemo这三个功能,我将它们进行了总结。

    useCallback(関数をメモ化する)(メモ化→キャッシュに保存する)
const handleClick = useCallback(() => {
+    setCountHeavy(countHeavy + 1);
+  }, [countHeavy]);

只要countHeavy不发生改变,handleClick函数就不会被执行。

    useMemo(値をメモ化する)

只要countHeavy没有改变,while循环就不会执行。

const handleClick = usememo(() => {
+    while(i < 1000000) {
        i++;
     }
+  }, [countHeavy]);

除非 countHeavy 被更改,否则 handleClick 函数不会被执行。

    React.memo(コンポーネントをメモ化する、propsが変更されたら実行)
import React, { useState } from "react";

const Child = React.memo(props => {
console.log("render Child");
return <p>Child: {props.count}</p>;
});

这三个只是在缓存的内容上稍有差异,概念是相同的。
– useCallback= 对函数进行记忆化
– useMemo= 对值进行记忆化
– React.memo= 对组件进行记忆化

广告
将在 10 秒后关闭
bannerAds