【问题标题】:does parent component re-renders when changes occur in child components?当子组件发生更改时,父组件是否会重新渲染?
【发布时间】:2022-08-10 03:13:28
【问题描述】:


我有一个看起来像这样的父组件:

const Parent = () => {
    return (
       <Child_1 />
       <Child_2 />
   );
}

如果其中一个子组件发生任何更改,父组件会重新渲染吗?

    标签: reactjs react-component


    【解决方案1】:

    不,它不会重新渲染。如果您将任何道具从父组件传递给该组件,并且您在子组件中更新该道具或在父组件中更新该道具,那么两者都将重新渲染。但是如果数据或状态对父组件没有依赖关系,则不会导致父组件重新渲染。

    【讨论】:

      【解决方案2】:

      子组件的状态变化不会影响父组件,但是当父组件的状态发生变化时,所有子组件都会渲染。

      【讨论】:

        【解决方案3】:

        挂钩子组件的生命周期不会影响父组件的生命周期,例如:

        function Child(){
            const [active, setActive] = useState();
            console.log("Child re-render")
        }
        
        function Parent(){
            console.log("Parent re-render")
            return <Child />    
        }
        

        如果你改变值积极的在 Child 中,会出现“Child re-render”日志,但不会出现“Parent re-render”日志,因为 child 重新渲染不会影响 parent。

        要记住的一件事是父组件的重新渲染确实会影响其子组件。

        【讨论】:

          猜你喜欢
          • 2018-10-07
          • 1970-01-01
          • 1970-01-01
          • 2020-01-20
          • 2021-07-09
          • 2021-12-01
          • 2020-02-13
          • 2018-08-12
          • 2019-06-01
          相关资源
          最近更新 更多