我是reactjs的初学者,并试图理解诸如父级和子级在reactjs中呈现什么以及如何呈现之类的概念
通过研究,我发现 React 首先渲染孩子,然后渲染父母,但我无法得到有效的答案,如何以及为什么?如果子进程无法渲染会发生什么,我猜在 React 16 中有一个名为 componentDidCatch 的生命周期,它可以处理子进程无法渲染的情况,那么在 React 16 之前有什么以及我们如何处理这些场景
请帮我
这取决于“子”和“渲染”的定义。
Child's render
当子函数嵌套在父函数中时,首先调用该函数render
因为父母需要使用孩子的结果render
在它自己的render
功能。如果孩子是children
prop 它也首先渲染,因为父级需要将其接收为children
prop.
在这种情况下,“子元素”是父元素中的嵌套元素render
,首先渲染并安装子级,错误边界在Parent
将能够捕获错误Child
:
class Parent extends Component {
componentDidCatch() {}
render = () => <div><Child/></div>;
}
const Grandparent = props => <Parent/>;
在这种情况下,“孩子”是children
prop,首先渲染一个孩子,但没有安装,因为children
未使用,错误边界在Parent
将无法捕获错误Child
因为Child
实际上是渲染在Grandparent
:
class Parent extends Component {
componentDidCatch() {}
render = () => <div/>;
}
const Grandparent = props => <Parent><Child/></Parent>;
在反应 15 中,unstable_handleError生命周期钩子 https://reactjs.org/docs/error-boundaries.html#naming-changes-from-react-15用于创建错误边界并处理子项中的错误。它被替换为componentDidCatch
在反应 16 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)