1. 程式人生 > >react生命周期和組件生命周期

react生命周期和組件生命周期

con upd pla spl true 裝載 階段 ould 進入

React的組件在第一次掛在的時候首先獲取父組件傳遞的props,接著獲取初始的state值,接著經歷掛載階段的三個生命周期函數,也就是ComponentWillMount,render,ComponentDidMount,這三個函數分別代表組件將會掛載,組件渲染,組件掛載完畢三個階段,在組件掛載完成後,組件的props和state的任意改變都會導致組建進入更新狀態,在組件更新階段,如果是props改變,則進入ComponentWillReceiveProps函數,接著進入ComponentShouldUpdate進行判斷是否需要更新,如果是state改變則直接進入ComponentShouldUpdate判定,這個默認是true,當判定不需要更新的話,組件繼續運行,需要更新的話則依次進入ComponentWillMount,render,ComponentDidMount三個函數,當組件卸載時,會首先進入生命周期函數ComponentWillUnmount,之後才進行卸載,如圖

技術分享圖片

React的生命周期函數:

初始化階段:getDefaultProps獲取實例的默認屬性,getInitialState獲取每個實例的初始化狀態,ComponentWillMount:組件將被裝載,渲染到頁面上,render:組件在這裏生成虛擬的DOM節點,ComponentDidMount:組件真正被裝載之後

運行中狀態: componentWillReceiveProps:組件將要接收到屬性的時候調用 shouldComponentUpdate:組件接受到新屬性或者新狀態的時候(可以返回 false,接收數據後不更新,阻止 render 調用,後面的函數不會被繼續執行了)shouldComponentUpdate 這個方法用來判斷是否需要調用 render 方法重新描繪 dom。因為 dom 的描繪非常消耗性能,如果我們能在 shouldComponentUpdate 方法中能夠寫出更優化的 dom diff 算法,可以極大的提高性能。 componentWillUpdate:組件即將更新不能修改屬性和狀態 render:組件重新描繪 componentDidUpdate:組件已經更新 銷毀階段: componentWillUnmount:組件即將銷毀

react生命周期和組件生命周期