我对反应组件的工作原理有点困惑。假设我有3个组件类A,B和C. A包含B和C,我想在我的HTML页面中呈现A
class A extends Component {
render() {
return (
<B />
<C />
);
}
}
如果我改变了组件C中的状态,那么组件B是否也会重新渲染或者只重新渲染组件C?谢谢:D
答案 0 :(得分:1)
不仅是C更新还是B更新,我认为这是一个关于协调算法如何工作的问题。 当您执行状态更新时,React会将其与Virtual DOM中的副本进行比较,并找出进行更改的最简单方法。
以下是我用于执行性能分析https://codesandbox.io/s/8n9rx1py5j
的代码库您可以从React docs
了解如何在Chrome中执行性能分析答案 1 :(得分:0)
仅限组件C且仅当您更改的状态影响渲染函数的输出时。
答案 2 :(得分:0)
如何更好地了解沙盒会发生什么?我已经设置了一个沙盒来帮助它 - https://codesandbox.io/s/388wxk9321
打开控制台,然后点击按钮增加
重置状态ModuleB
&amp;中的计数器。ModuleC
,然后从ModuleA