【发布时间】:2022-08-10 03:13:28
【问题描述】:
我有一个看起来像这样的父组件:
const Parent = () => {
return (
<Child_1 />
<Child_2 />
);
}
如果其中一个子组件发生任何更改,父组件会重新渲染吗?
我有一个看起来像这样的父组件:
const Parent = () => {
return (
<Child_1 />
<Child_2 />
);
}
如果其中一个子组件发生任何更改,父组件会重新渲染吗?
不,它不会重新渲染。如果您将任何道具从父组件传递给该组件,并且您在子组件中更新该道具或在父组件中更新该道具,那么两者都将重新渲染。但是如果数据或状态对父组件没有依赖关系,则不会导致父组件重新渲染。
【讨论】:
子组件的状态变化不会影响父组件,但是当父组件的状态发生变化时,所有子组件都会渲染。
【讨论】:
这挂钩子组件的生命周期不会影响父组件的生命周期,例如:
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。
要记住的一件事是父组件的重新渲染确实会影响其子组件。
【讨论】: