首頁 >web前端 >js教程 >react 生命週期函數有哪些

react 生命週期函數有哪些

hzc
hzc原創
2020-06-22 15:31:032801瀏覽

react 生命週期函數有哪些

react 生命週期函數

初始化

1.getDefaultProps()

註:getDefaultProps這種定義方式是用在你定義元件用的是React.createClass方式的
如果使用的是es6的語法,例如用的是class 元件名extends React.Component的話,就不要用
getDefaultProps這種方式去定義props了,而是應該用static propTypes ={}來定義,這樣就不會有警了

设置默认的props,也可以用dufaultProps设置组件的默认属性. ---》设置
2.getInitialState()

#註:與getDefaultProps的差別在於前者設定預設的props,後者設定初始的state在使用es6的class語法時是沒有這個鉤子函數的,可以直接在constructor中定義this.state。此時可以存取this.props

3.componentWillMount

註:元件初始化時只調用,以後元件更新不調用,整個生命週期只調用一次,此時可以修改state。

4. render()

附註:react最重要的步驟,建立虛擬dom,進行diff演算法,更新dom樹都在此進行。此時就不能更改state了。

5.componentDidMount()

註:元件渲染之後調用,只調用一次。可以在此請求資料

·更新

1.componentWillReceiveProps(nextProps)

註:元件初始化時不調用,元件接受新的props時調用。

2.shouldComponentUpdate(nextProps, nextState)

#附註:react效能最佳化非常重要的一環。元件接受新的state或props時調用,我們可以設定在此對比前後兩個props和state是否相同,如果相同則返回false阻止更新,因為相同的屬性狀態一定會產生相同的dom樹,這樣就不需要創造新的dom樹和舊的dom樹進行diff演算法對比,節省大量效能,尤其是在dom結構複雜的時候

3.componentWillUpdata(nextProps, nextState)

#註:元件初始化時不調用,只有在元件會更新時才調用,此時可以修改state

4.render()

註:元件渲染

#5.componentDidUpdate( )

註:元件初始化時不調用,元件更新完成後調用,此時可以取得dom節點。

·卸載

componentWillUnmount()
註:元件將要卸載時調用,一些事件監聽和定時器需要在此時清除。

推薦教學:《react教學

以上是react 生命週期函數有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn