即使組件未顯式呈現標記,組件仍將調用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')
);
非常多明顯的例子,謝謝。 –