# 組件生命周期
## 生命周期狀態
組件的生命周期可分成三個狀態:
- Mount:組件第一次在DOM樹種渲染的過程
- Update:當組件被重新渲染的過程
- Unmount:已移出真實 DOM
## 生命周期鉤子
生命周期的方法有:
- `componentWillMount` 在渲染前調用,在客戶端也在服務端。
- `componentDidMount` 在第一次渲染后調用,只在客戶端。之后組件已經生成了對應的DOM結構,可以通過 `this.getDOMNode()` 來進行訪問。 如果你想和其他JavaScript框架一起使用,可以在這個方法中調用setTimeout, setInterval或者發送AJAX請求等操作(防止異部操作阻塞UI)。
- `componentWillReceiveProps` 在組件接收到一個新的prop時被調用。這個方法在初始化render時不會被調用。
- `shouldComponentUpdate` 返回一個布爾值。在組件接收到新的props或者state時被調用。在初始化時或者使用forceUpdate時不被調用。
- `componentWillUpdate` 在組件接收到新的props或者state但還沒有render時被調用。在初始化時不會被調用。
- `componentDidUpdate` 在組件完成更新后立即調用。在初始化時不會被調用。
- `componentWillUnmount` 在組件從 DOM 中移除的時候立刻被調用。
## 生命周期示意圖
:-: 
- 簡介
- 第一章 React入門
- 1.1 創建一個React項目
- 1.2 組件
- 1.3 JSX
- 1.4 eject
- 1.5 渲染
- 第二章 React組件
- 2.1 組件定義
- 2.2 數據處理
- 2.2.1 props
- 2.2.2 state
- 2.3 生命周期
- 2.3.1 裝載過程
- 2.3.2 更新過程
- 2.3.3 卸載過程
- 2.4 事件處理
- 2.5 條件渲染
- 2.6 列表渲染
- 第三章 React高級
- 3.1 靜態類型檢查
- 3.1.1 flow
- 3.1.2 typescript
- 3.2 React Developer Tools
- 第四章 Redux狀態管理
- 4.1 安裝與配置
- 4.2 一個簡單的計數器開始
- 4.3 Store
- 4.3.1 獲取state
- 4.3.2 subscribe
- 4.4 Action
- 4.4.1 Action Creators
- 4.5 Reducer
- 4.5.1 Reducer 的拆分
- 4.6 與其他狀態管理工具的對比
- 第五章 React-Router路由
- 參考資料