Props和 State的特性和差異
組件中有 state 和 props
props 由父組件傳遞給子組件
state 由組件自行維護,一個state對應一個render
組件的初始化->運行中->銷毀
初始化 (順序由上至下)
getDefaultProps (只會在第一個實例中被調用,實例間共享引用,如 var count = ….)
getInitialState (初始化每個實例特有的狀態,需有一個return的值,否則會報錯)
componentWillMount (render之前最後一次修改狀態的機會,可在此設置屬性,此階段還沒真正被裝載)
render (只能訪問this.props 和 this.state,只有一個頂層組件,不允許修改狀態和DOM輸出)
componentDidMount (成功render並渲染完成真實DOM之後觸發,可以修改DOM)
運行中階段函數介紹
componentWillReceiveProps 父組件修改屬性之前被觸發,可以修改新屬性狀態
shouldComponentUpdate 需有一個return的值,否則會報錯,返回false會阻止render調用
componetWillUpdate 在render前執行,不能修改屬性和狀態
render (只能訪問this.props 和 this.state,只有一個頂層組件,不允許修改狀態和DOM輸出)
componentDidUpdate 可以修改DOM
銷毀階段可以使用的函數
componentWillUnmount 在刪除組件之前進行清理操作,比如計時器和事件監聽器