情景:
组件A
是组件B
的父级。
A
有一个名为a
String
的道具。
B
的状态名为b
Int
。
b
是42
a
是"hello"
现在,我使用render()
重新呈现A
并将a
设置为"hi!"
。
b
会怎样?重新渲染后它仍然是42
吗?为什么?
关于原因的一些相关背景问题:
我最初的猜测是42
将丢失,子组件将使用0
或默认值重新初始化。但这没有多大意义,它不会非常有用,但我只是看不到子组件的状态如何生存?
也许我不明白有状态组件和 VDOM 之间的区别以及它们与彼此之间的关系。
1)有状态组件是否是用于创建相应 VDOM 的模板?如果render()
方法采用(有状态)组件并吐出 VDOM ,那么 vdom 就是这样在render()
创建 vdom ?
2)是否实际上无状态组件等于 VDOM ,但相同的有状态组件可以生成许多不同的 VDOM - s?
3)我需要在脑中做出反应的心理模型是什么,以便我能够解释这种情况?我想我在这里失踪了。