(一)初始化階段
- getDefaultProps
- 獲取實例的默認屬性
- 只會在組件的第一個實例被初始化的時候調用
- 沒有調用實例也是會調用
- getInitialState
- 獲取實例的初始化狀態
- componentWillMount
- render之前最後一次修改狀態的機會
- render
- 生產虛擬的DOM節點,JSX
- 只能訪問this.props和this.state
- 只有一個頂層組件
- 不允許修改狀態和DOM輸出
- componentDidMount
- 成功render並渲染真實DOM之後觸發
- 可以修改DOM
- 組件在真正被裝載時調用
- 組件已經被渲染到頁面上
(二)運行中階段
- componentWillReceiveProps
- 在組件將要接受到屬性時調用(接受前)
- 父組件修改屬性觸發,可以修改新屬性、修改狀態
- shouldComponentUpdate
- 當組件在接受到新屬性時調用
- 詢問是否需要更新
- 返回false會阻止render調用
- componentWillUpdate
- 不能修改屬性和狀態
- render
- 同初始化render函數
- componentDidUpdate
- 真正的DOM被渲染完之後調用
- 可以修改DOM
(三)銷燬階段
- componentWillUnmount
- 銷燬操作真正執行前調用