簡述React生命周期

React 適合0基礎教程快速上手 github地址

React組件的生命周期(必須掌握)

創建期(五個階段)

  1. getDefaultProps(獲取默認屬性)
    作用于組件類,只調用一次,返回對象用于設置默認的props,對于引用值,會在實例中共享。
  2. getInitialState (獲取默認狀態)
    作用于組件的實例,在實例創建時調用一次,用于初始化每個實例的state,此時可以訪問this.props。
  3. componentWillMount (組件將要構建)
    在完成首次渲染之前調用,此時仍可以修改組件的state。
  4. render (組件渲染輸出虛擬dom)
    必選的方法,創建虛擬DOM,該方法具有特殊的規則: * 只能通過this.props和this.state訪問數據 * 可以返回null、false或任何React組件 * 只能出現一個頂級組件(不能返回數組) * 不能改變組件的狀態 * 不能修改DOM的輸出
  5. componentDidMount(組件渲染完成)
    真實的DOM被渲染出來后調用,在該方法中可通過this.getDOMNode()(也可以ReactDOM.findDOMNode(this))訪問到真實的DOM元素。此時已可以使用其他類庫來操作這個DOM。(在服務端中,該方法不會被調用)

存在期 (五個階段)

  1. componentWillReceiveProps(接受新的屬性)
    組件接收到新的props時調用,并將其作為參數nextProps使用,此時可以更改組件props及state。
componentWillReceiveProps: function(nextProps) { 
              if (nextProps.bool) { 
                        this.setState({ bool: true }); 
              }
 }
  1. shouldComponentUpdate(組建是否應該更新)
    **必須有返回值(return false/true)
    第一個參數是新屬性
    第二個參數是新狀態
    組件是否應當渲染新的props或state,返回false表示跳過后續的生命周期方法,通常不需要使用以避免出現bug。在出現應用的瓶頸時,可通過該方法進行適當的優化。
  2. componentWillUpdate (組件將要被更新)
    第一個參數是新屬性
    第二個參數是新狀態
    接收到新的props或者state后,進行渲染之前調用,此時不允許更新props或state。
  3. render(組件更新輸出dom)
    沒有參數 這個階段訪問的都是舊的虛擬dom 只有之后的一個階段訪問的才是新的虛擬dom
  4. componentDidUpdate(組件更新完成)
    完成渲染新的props或者state后調用,此時可以訪問到新的DOM元素。

銷毀期 componentWillUnmount

組件被移除之前被調用,可以用于做一些清理工作,在componentDidMount方法中添加的所有任務都需要在該方法中撤銷,比如創建的定時器或添加的事件監聽器。
(如有雷同,純屬巧合,幫忙點個贊拜!!!)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容