reac中useCallback使用

Posted 前端那点事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了reac中useCallback使用相关的知识,希望对你有一定的参考价值。


import React,{useState,useCallback} from "react"
const Son = React.memo( ({a,c}) =>{
    console.log(\'son 重新渲染\');
    return (
        <div>
            a:{a}
            <button onClick={c}>点击</button>
        </div>
    )

}) 
export default function useCallBack(){
    const [a, setA] = useState(0);
    const [b, setB] = useState(0);

    // const memoHandClick = () => console.log("click");
    const memoHandClick =useCallback(() =>{console.log("click")},[]) //避免的重新生成回调函数 保证了Son组件的重新渲染

    return(
        <div>
            {console.log(\'UseCallBack 渲染\')}

            <Son a={a} c={memoHandClick} />
   
            <button onClick={() =>{setA(a +1 )}}>改变A</button>
            <button onClick={() =>{setB(b +1 )}}>改变B</button>
            <button onClick={memoHandClick}>click</button>

        </div>
    )

}

效果:

以上是关于reac中useCallback使用的主要内容,如果未能解决你的问题,请参考以下文章

React Hooks useCallback 的简单示例的问题

1024用代码改变世界useMemo 和 useCallback|React.memo使用场景

具有依赖关系的 useCallback 与使用 ref 调用函数的最后一个版本

useEffect, useCallback, useMemo三者有何区别?

如何在 useCallback 中使用 ESlint 允许 IIFE 语法?

如何在功能组件中混合使用 useCallback 和 useRef