Reactjs React Reender道具更改与本地状态更改
为什么组件演示不在计数器更改时重新启动? 我知道props.children与前面的相同,但是本地状态发生了变化,所以应该重新播放。更改局部状态是否以某种方式进行了优化,以检测顶部组件的某些部分是否应重新招标 在第二个例子中,它确实是rerender,这些例子之间的区别是什么Reactjs React Reender道具更改与本地状态更改,reactjs,Reactjs,为什么组件演示不在计数器更改时重新启动? 我知道props.children与前面的相同,但是本地状态发生了变化,所以应该重新播放。更改局部状态是否以某种方式进行了优化,以检测顶部组件的某些部分是否应重新招标 在第二个例子中,它确实是rerender,这些例子之间的区别是什么 在示例中,您可以单击按钮并在控制台中查看是否重新提交了演示。这是因为将子项参数传递给顶部组件就是传递对该对象的引用。React可以检测到与以前的版本相比没有任何更改,因此不会重新渲染 当您在Top组件中使用name呈现
在示例中,您可以单击按钮并在控制台中查看是否重新提交了演示。这是因为将
子项
参数传递给顶部
组件就是传递对该对象的引用。React可以检测到与以前的版本相比没有任何更改,因此不会重新渲染
当您在
Top
组件中使用name
呈现组件时,您每次都呈现一个新版本的Demo
组件。在第一种情况下,您传递的是子组件
,它是道具
的一部分,本质上是在Top
组件的每次重新呈现上,正在返回相同的子对象
引用,因此React会检测到该引用,并且不会重新呈现演示
组件
在第二种情况下,React将在内部再次执行React.createElement(…)
以创建Demo
组件,这是一个新的引用
这里有一句很好的话来记住这一点:-
如果React组件在其
与上次一样渲染输出,React将跳过重新渲染
那个孩子
我在这里提到这个-