摘要:完整生命周期初始化參數第一次渲染當父組件向子組件傳入發生改變后,依次調用子組件更新渲染當組件自身發生變化后組件再次更新渲染當組件卸載生命周期詳解此處請求接口數據子組件獲得新時觸發,作用是在子組件再次渲染前,更新子組件自身的,之后會觸發接受的
完整生命周期
constructor(props) // 初始化參數 componentWillMount() render() // 第一次渲染 componentDidMount() 當父組件向子組件傳入props發生改變后,依次調用 componentWillReceiveProps(nextProps) shouldComponentUpdate(nextProps, nextState) componentWillUpdate() render() //子組件更新渲染 componentDidUpdate() 當組件自身state發生變化后 componentWillUpdate() render() //組件再次更新渲染 componentDidUpdate() 當組件卸載 componentWillUnmount()生命周期詳解
componentDidMount() 此處請求接口數據
componentWillReceiveProps(nextProps) 子組件獲得新props時觸發,作用是在子組件再次渲染前,更新子組件自身的state,之后會觸發shouldComponentUpdate()
shouldComponentUpdate(nextProps, nextState) 接受的props發生變化或者自身state變化都會觸發該生命周期,在此生命周期可以做一些渲染的優化,默認返回true,就是默認需要更新組件,重新渲染,nextProps nextState 都是新state 新props,this.props this.state 表示舊的props state,根據需求做優化,比如在某些情況下返回false,便不再進行組件更新了,提升頁面性能
static getDerivedStateFormProps(nextProps, prevState) 替代 componentWillReceiveProps 返回的結果會送給setState 如果什么都不改變就返回null static 聲明靜態函數,無法訪問this,也就是一個純函數,輸出完全由輸入決定 除了shouldComponentUpdate之外,render前的所有生命周期都被替代 返回新的state,重新進行setSate后,react會去控制不再進行新的更新 AJAX請求在依舊在componentDidMount 中進行,只有在一些特定情況下實用 (此處還未深入了解 貌似用的場景很少 eg: static getDerivedStateFromProps(nextProps, prevState) { console.log(nextProps); // 新傳入的props console.log(prevState); // 舊的state //console.log(this.props); return { value: nextProps.value } }例子
這個例子讓你更好的理解幾個生命周期的作用 Github地址在這里
參考react官方文檔 State & 生命周期 && 性能優化 章節
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100903.html
摘要:因為版本將真正廢棄這三生命周期到目前為止,的渲染機制遵循同步渲染首次渲染,更新時更新時卸載時期間每個周期函數各司其職,輸入輸出都是可預測,一路下來很順暢。通過進一步觀察可以發現,預廢棄的三個生命周期函數都發生在虛擬的構建期間,也就是之前。 showImg(https://segmentfault.com/img/bVbweoj?w=559&h=300); 背景 前段時間準備前端招聘事項...
摘要:卸載階段組件卸載和銷毀老版生命周期之前的生命周期初始化階段涉及個鉤子函數這些方法會在組件初始化的時候被調用,只跟實例的創建有關。 前言:React 的版本從 v15 到 v16.3 ,再到v16.4,現在最新的版本是 v16.8了。其中最大的變化可能是React Hooks的加入,而最令人困惑的卻是它的生命周期,新舊生命周期函數混雜在一起,難免會讓許多新來者有很多困惑。所以這一篇我們來...
摘要:的返回值將作為的參數,如果返回,則不更新,不能返回或以外的值,否則會警告。在更新之前調用,此時已更新返回值作為的第個參數一般用于獲取之前的數據語法是從的返回值,默認是的使用場景一般是獲取組建更新之前的滾動條位置。 React16 后的各功能點是多個版本陸陸續續迭代增加的,本篇文章的講解是建立在 16.6.0 版本上本篇文章主旨在介紹 React16 之后版本中新增或修改的地方,所以對于...
摘要:已經被廢除,具體缺陷可以參考二為了解決的缺陷,第二種解決方案是高階組件簡稱。我們定義了父組件,存在自身的,并且將自身的通過的方式傳遞給了子組件。返回一個標識該的變量,以及更新該的方法。 ??為了實現分離業務邏輯代碼,實現組件內部相關業務邏輯的復用,在React的迭代中針對類組件中的代碼復用依次發布了Mixin、HOC、Render props等幾個方案。此外,針對函數組件,在Reac...
摘要:已經被廢除,具體缺陷可以參考二為了解決的缺陷,第二種解決方案是高階組件簡稱。我們定義了父組件,存在自身的,并且將自身的通過的方式傳遞給了子組件。返回一個標識該的變量,以及更新該的方法。 ??為了實現分離業務邏輯代碼,實現組件內部相關業務邏輯的復用,在React的迭代中針對類組件中的代碼復用依次發布了Mixin、HOC、Render props等幾個方案。此外,針對函數組件,在Reac...
閱讀 2553·2021-11-23 09:51
閱讀 3355·2021-11-22 15:22
閱讀 1868·2021-11-18 13:22
閱讀 2236·2021-09-24 09:48
閱讀 1308·2019-08-29 13:58
閱讀 1297·2019-08-26 13:39
閱讀 2445·2019-08-26 10:48
閱讀 3031·2019-08-26 10:21