getDefaultProps(獲取默認屬性)
作用于組件類,只調用一次,返回對象用于設置默認的props,對于引用值,會在實例中共享。
getInitialState(獲取默認狀態)
作用于組件的實例,在實例創建時調用一次,用于初始化每個實例的state,此時可以訪問this.props。
componentWillMount(組件將要構建)
在完成首次渲染之前調用,此時仍可以修改組件的state。
render(組件渲染輸出虛擬dom)
必選的方法,創建虛擬DOM,該方法具有特殊的規則:只能通過this.props和this.state訪問數據可以返回null、false或任何React組件只能出現一個頂級組件(不能返回數組)不能改變組件的狀態 * 不能修改DOM的輸出
componentDidMount(組件渲染完成)
真實的DOM被渲染出來后調用,在該方法中可通過this.getDOMNode()(也可以ReactDOM.findDOMNode(this))訪問到真實的DOM元素。此時已可以使用其他類庫來操作這個DOM。(在服務端中,該方法不會被調用)
存在期 (五個階段)
componentWillReceiveProps(接受新的屬性)
組件接收到新的props時調用,并將其作為參數nextProps使用,此時可以更改組件props及state。
componentWillReceiveProps:function(nextProps){if(nextProps.bool) {this.setState({bool:true});? ? ? ? ? ? }}
shouldComponentUpdate(組建是否應該更新)
**必須有返回值(return false/true)
第一個參數是新屬性
第二個參數是新狀態
組件是否應當渲染新的props或state,返回false表示跳過后續的生命周期方法,通常不需要使用以避免出現bug。在出現應用的瓶頸時,可通過該方法進行適當的優化。
componentWillUpdate(組件將要被更新)
第一個參數是新屬性
第二個參數是新狀態
接收到新的props或者state后,進行渲染之前調用,此時不允許更新props或state。
render(組件更新輸出dom)
沒有參數 這個階段訪問的都是舊的虛擬dom 只有之后的一個階段訪問的才是新的虛擬dom
componentDidUpdate(組件更新完成)
完成渲染新的props或者state后調用,此時可以訪問到新的DOM元素。
銷毀期componentWillUnmount
組件被移除之前被調用,可以用于做一些清理工作,在componentDidMount方法中添加的所有任務都需要在該方法中撤銷,比如創建的定時器或添加的事件監聽器。
(如有雷同,純屬巧合,幫忙點個贊拜!!!)