我对react组件的工作原理有点困惑。假设我有3个组件类A、B和C。A包含B和C,我想在HTML页面中呈现A
class A extends Component {
render() {
return (
<B />
<C />
);
}
}如果我改变组件C内部的状态,是组件B也被重新呈现,还是只有组件C被重新呈现?谢谢:D
发布于 2017-10-08 21:39:25
不仅仅是C更新还是B更新,我认为这是一个关于协调算法如何工作的问题。当您执行状态更新时,React会将其与Virtual DOM中的副本进行比较,并找出进行更改的最简单方法。
正如您所看到的,当您在B上执行更新时,只有B更新。

C,只更新C语言。

但是当你在A (称为App)上执行更新时,A、B和C都会更新。

下面是我用来分析https://codesandbox.io/s/8n9rx1py5j的代码库
您可以从React docs了解如何在Chrome中执行性能分析
发布于 2017-10-08 20:57:37
仅组件C,并且仅当更改的状态影响渲染函数的输出时。
发布于 2017-10-08 21:48:28
还有什么比使用沙箱更好地理解发生了什么呢?我已经设置了一个沙箱来帮助解决同样的问题-- https://codesandbox.io/s/388wxk9321
打开控制台并单击按钮,以递增
ModuleB和ModuleC中的计数器,然后从ModuleA重置状态
懒惰的人

https://stackoverflow.com/questions/46631291
复制相似问题