ReactElement
将 a作为属性传递有什么区别:
<RenderParam ReactElement={<Counter />} />
function RenderParam({ ReactElement }) {
return <div>{ReactElement}</div>;
}
并传递一个返回 a 的函数ReactElement
:
const instantiatedCounter = () => <Counter />;
<RenderParam ReactElement={instantiatedCounter} />
function RenderParam({ ReactElement }) {
return <div> <ReactElement /> </div>
}
我看到生命周期存在差异:
- 每次父 react 元素更新时,
Counter
都会执行第二种情况的挂载循环:
ReactElement changed (at RenderParam lifecycle)
component did mount (at Counter)
- 每次父组件渲染时,第二种情况也会丢失其状态。
我看不出它们之间有什么区别。为什么第一个案例能够保持其状态?