日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

React的生命周期

發布時間:2023/12/1 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 React的生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本人是轉載kiinlam github

實例化

首次實例化

  • getDefaultProps
  • getInitialState
  • componentWillMount
  • render
  • componentDidMount

實例化完成后的更新

  • getInitialState
  • componentWillMount
  • render
  • compoentDidMount

存在期

組件已存在時的狀態改變

  • componentWillReceiveProps
  • shouldComponentUpdate
  • componentWillUpdate
  • render
  • componentDidUpdate

銷毀&清理期

  • componentWillUnmount

說明

生命周期共提供了10個不同的API。

1.getDefaultProps

作用于組件類,只調用一次,返回對象用于設置默認的props,對于引用值,會在實例中共享。

2.getInitialState

作用于組件的實例,在實例創建時調用一次,用于初始化每個實例的state,此時可以訪問this.props。

3.componentWillMount

在完成首次渲染之前調用,此時仍可以修改組件的state。

4.render

必選的方法,創建虛擬DOM,該方法具有特殊的規則:

  • 只能通過this.props和this.state訪問數據
  • 可以返回null、false或任何React組件
  • 只能出現一個頂級組件(不能返回數組)
  • 不能改變組件的狀態
  • 不能修改DOM的輸出

5.componentDidMount

真實的DOM被渲染出來后調用,在該方法中可通過this.getDOMNode()訪問到真實的DOM元素。此時已可以使用其他類庫來操作這個DOM。

在服務端中,該方法不會被調用。

6.componentWillReceiveProps

組件接收到新的props時調用,并將其作為參數nextProps使用,此時可以更改組件props及state。

componentWillReceiveProps: function(nextProps) {if (nextProps.bool) {this.setState({bool: true});}}

7.shouldComponentUpdate

組件是否應當渲染新的props或state,返回false表示跳過后續的生命周期方法,通常不需要使用以避免出現bug。在出現應用的瓶頸時,可通過該方法進行適當的優化。

在首次渲染期間或者調用了forceUpdate方法后,該方法不會被調用

8.componentWillUpdate

接收到新的props或者state后,進行渲染之前調用,此時不允許更新props或state。

9.componentDidUpdate

完成渲染新的props或者state后調用,此時可以訪問到新的DOM元素。

10.componentWillUnmount

組件被移除之前被調用,可以用于做一些清理工作,在componentDidMount方法中添加的所有任務都需要在該方法中撤銷,比如創建的定時器或添加的事件監聽器。

?

轉載于:https://www.cnblogs.com/shirly77/p/6697513.html

總結

以上是生活随笔為你收集整理的React的生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。