即使组件未显式呈现标记,组件仍将调用componentDidMount。在你的例子,
从反应文档:
componentWillMount()被安装发生之前立即被调用。它在render()之前被调用...
即使组件要渲染为null,它仍然必须在经过正常生命周期并且它仍然“挂载”后才能确定。它们仍然是组件并且行为方式相同。我喜欢考虑每个组件呈现标记,因为它有一个子组件(或者它返回null,这不会影响生命周期)。
componentDidMount的顺序将是A,B,C具有以下:
例如:JSBIN
class A extends React.Component {
componentDidMount() {
console.log('A');
}
render() {
return <div>AHHH IT IS A</div>
}
}
class B extends React.Component {
componentDidMount() {
console.log('B');
}
render() {
return <A someProps={'SomeProps'}/>
}
}
class C extends React.Component {
componentDidMount() {
console.log('C');
}
render() {
return <B someProps={'SomeProps'}/>
}
}
ReactDOM.render(
<C />,
document.getElementById('root')
);
非常多明显的例子,谢谢。 –