问答详情
源自:-

useCallback 减少渲染 这个地方的‘渲染’具体指的是什么

useCallback 可以减少 渲染 这个地方的渲染没懂什么意思   我的理解是调用一次r函数就算渲染了一次,然后父组件state上的变量发生变化 子组件不管props有无变化都会重新渲染 和 useCallback 好像没啥关系了

提问者:qq_冰糖_5 2021-04-29 17:16

个回答

  • yancy
    2021-06-06 11:54:39

    const Child = () => {
      return <div>111</div>
    }
    
    const App = () => {
      const [num, setNum] = useState(1)
    
      const AppChild = useCallback(() => {
        return <Child />
      }, [num])
    
      return (
        <div className="App" onClick={() => setNum(num + 1)}>
          <AppChild />
        </div>
      );
    }

    类似于上述情况,如果当前num没有变化时,返回的依旧是之前计算好的Child内容,并不会重新计算Child组件。