如果要记录每个组件渲染的开始和结束,它们将独立于它们渲染的子项开始和结束。孩子如何在父母的渲染的开头和结尾内渲染?
谢谢!
答案 0 :(得分:1)
父母如何知道要渲染的子项,直到它呈现为止?想一想。子项是父组件呈现的结果。在父母呈现之前,React,宇宙或上帝究竟知道要渲染哪些子元素?很明显,父级在其子级之前呈现,当有子级渲染时,它会运行自己的渲染函数,如果 子级有子级,则渲染那些孩子们,等等。 React Apps基本上是一个树形结构,首先呈现根“节点”,然后是任何子节点,然后是这些子节点的任何子节点等。
此外,渲染功能没有“结束”。 “end”是返回React组件以呈现,并且在返回之后不能在render函数中运行代码。渲染的“结束”是每个父节点和子节点都运行其渲染函数并返回一个组件。
答案 1 :(得分:1)
在React中阅读Reconciliation并且还有good video about how React renders in Fiber可能会很好,这有助于可视化React在重新渲染时所考虑的内容。
父母不负责每个组件的个别渲染功能 - 它只是知道对虚拟DOM的差异,然后触发生命周期方法,然后在必要时为自己的孩子重新渲染。为了澄清挂钩生命周期方法也可以改变父或子可能渲染的行为,所以当你问如何不呈现某些东西时,可能是因为它被指定为不。(/ p>
对于子组件,父母只需重新修复道具并再次触发该过程,但它不一定要销毁和重建实例(这取决于是否有different types surrounding the children components)。
希望这有帮助。