1. 程式人生 > 其它 >react新舊生命週期

react新舊生命週期

舊生命週期分為3個階段

掛載
getDefaultProps:初始化元件的props
getInitialState:初始化元件的state
componentWillMount:react16已廢除
render:返回一個jsx物件,根據props和state渲染元件
componentDidMout:只能呼叫一次,用來發起ajax請求

更新
shouldComponentUpdate(nextProps,nextState):元件是否更新,返回一個bool值
componentWillUpdate:已廢棄
componentDidUpdate(prevProps, prevState):
componentWillReceiveProps(nextProps):已廢棄

解除安裝
componentWillUnmount:即將解除安裝,用來清除timer,取消網路請求和在已經掛載後建立的訂閱

新生命週期

掛載
constructor
getDerivedStateFromProps:在render之前使用,返回一個物件來更新state,返回null則不更新,不推薦使用。適用於罕見的情況,即state的值在任何時候都取決於props
render
componentDidMount

更新
getDerivedStateFromProps
shouldComponentUpdate
render
getSnapshotBeforeUpdate(prevProps, preState)

:必須有返回值,作為第三個引數傳給componentDidUpdate
componentDidUpdate

解除安裝
componentWillUnmount:即將解除安裝,用來清除timer,取消網路請求和在已經掛載後建立的訂閱