react組件生命週期理解

react組件有兩個狀態,一個是渲染狀態,一個是卸載狀態,而渲染狀態又分爲初始渲染狀態(也能夠說是建立狀態)和從新渲染狀態(也能夠說是存在狀態,說明組件一直存在,會發生屢次從新渲染)。這三個狀態下又會產生一系列的生命週期函數,開發人員通常只須要了解其中五個主要的生命週期函數:componentWillMount、componentDidMount、componentWillUpdate、componentDidUpdate、componentWillUnmount。一下是圖解:react

clipboard.png

下面詳細解釋一下上圖。首先,在組件初始渲染以前react native框架會調用componentWillMount函數,在組件生命週期中,它只會被執行一次(注:若是組件須要從本地存儲中獲取數據,能夠在該函數中執行獲取本地存儲數據操做);執行完componentWillMount函數以後,組件就會執行初始渲染;當初始渲染完成後,react native框架會當即調用componentDidMount函數,一樣的,該函數在生命週期中也只會執行一次(注:組件能夠在該函數中執行從網絡中獲取數據操做);這兩步以後,組件就初始渲染出來了;當組件從父組件中接收到新的prop、組件的prop在父組件中被更改、或者組件的state變量改變時,只要這三個有發生一種,react native框架就會觸發diff算法計算該組件是否有改動,若是有改動,組件就會被從新渲染,從新渲染以前,react native框架會調用componentWillUpdate函數(注:該函數中不能對組件狀態進行更改);以後,組件便會執行從新渲染;從新渲染完成以後,react native框架會調用componentDidUpdate函數;從新渲染這個狀態會被屢次觸發,因此這兩個函數也會被執行屢次。當組件要被卸載以前,react native框架會調用componentWillUnMount函數,以後就會卸載組件。
開發者能夠在這幾個生命週期函數中定義一些你想組件變化的操做或者作一些數據的改變。算法

最後提醒一點,diff算法是react native用於實現虛擬dom機制實現的一種算法,虛擬dom機制是react native實現對數據批量處理反應迅速的基礎,建議朋友們有必要去理解透徹。以後的文章中,本人也會進行介紹,你們共勉交流一下,嘻嘻~網絡

相關文章
相關標籤/搜索