React生命周期

組件掛載階段

constructor
  • constructor的執(zhí)行在最前面蹦渣,這時組件還尚未掛載至頁面,所以constructor中不可直接使用setState

  • 首先是constructor的執(zhí)行藏古,同一個類組件對象只會創(chuàng)建一次,不會因為組件的重新渲染而再次創(chuàng)建,所以constructor也就只會執(zhí)行一次

componentWillMount(React16之后被移除)
  • 和該函數(shù)的名字一樣祝懂,她的執(zhí)行周期就是組件即將被掛載之前顽耳,構(gòu)造函數(shù)執(zhí)行之后

  • 同構(gòu)造函數(shù)一樣坠敷,只會運行一次

  • 避免使用setState

static getDerivedStateFromProps(React16之后添加)
  • 官方不推薦使用
render
  • 調(diào)用React.createElement創(chuàng)建并返回一個虛擬DOM,將其掛載至虛擬DOM樹上射富,并渲染
componentDidMount
  • 組件完成掛載膝迎,虛擬DOM渲染結(jié)束之后,僅執(zhí)行一次

  • 常用于數(shù)據(jù)獲取

組件更新階段

  • 組件掛載徹底完成胰耗,接下來就是屬性或狀態(tài)的變化導(dǎo)致的組件更新階段
componentWillReceiveProps(React16之后被移除)
  • 組件即將接收到新的屬性值限次,即使這個屬性值并沒有改變

  • 參數(shù)為新的屬性對象props

  • 不推薦使用

static getDerivedStateFromProps(React16之后添加)
  • 官方不推薦使用

  • 發(fā)生在組件接收了新的屬性props或狀態(tài)state之后,shouldComponentUpdate之前

  • 接收兩個參數(shù)柴灯,props卖漫,state,分別為新接收的屬性和狀態(tài)

  • 由于是靜態(tài)函數(shù)弛槐,所以函數(shù)體內(nèi)的this指向構(gòu)造函數(shù)

  • 可返回null懊亡,不改變當(dāng)前狀態(tài),也可返回對象乎串,用該對象覆蓋之前的狀態(tài)

shouldComponentUpdate
  • 發(fā)生在組件接收了新的屬性props或狀態(tài)state之后店枣,即使她們并沒有改變

  • 作用是決定React是否要重新渲染該組件

  • 若返回true速警,則重新渲染,false則不重新渲染鸯两,默認(rèn)為true

  • 兩個參數(shù)闷旧,nextPropsnextState钧唐,分別對應(yīng)新接收的屬性和狀態(tài)

  • 可用于性能優(yōu)化

componentWillUpdate(React16之后被移除)
  • 發(fā)生于組件即將重新渲染之前

  • 兩個參數(shù)忙灼,nextPropsnextState钝侠,分別對應(yīng)新接收的屬性和狀態(tài)

render
  • 開始重新渲染
getSnapshotBeforeUpdate(React16之后添加)
  • 真實DOM構(gòu)建結(jié)束该园,但還未實際渲染至頁面前

  • 通常用于一些dom操作

  • 返回值會作為componentDidUpdate的第三個參數(shù)

componentDidUpdate
  • 發(fā)生于組件重新渲染完成之后

  • 兩個參數(shù),prevProps帅韧,prevState里初,分別對應(yīng)屬性和狀態(tài)改變之前的值

  • 這個函數(shù)里一般會進(jìn)行一些dom的操作,改變元素

componentWillUnMount
  • 發(fā)生于組件即將被銷毀之前

  • 常用于銷毀一些該組件依賴的資源忽舟,例如計時器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末双妨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叮阅,更是在濱河造成了極大的恐慌刁品,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浩姥,死亡現(xiàn)場離奇詭異挑随,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)及刻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門镀裤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來竞阐,“玉大人缴饭,你說我怎么就攤上這事÷嬗ǎ” “怎么了颗搂?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長幕垦。 經(jīng)常有香客問我丢氢,道長,這世上最難降的妖魔是什么先改? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任疚察,我火速辦了婚禮,結(jié)果婚禮上仇奶,老公的妹妹穿的比我還像新娘貌嫡。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布岛抄。 她就那樣靜靜地躺著别惦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夫椭。 梳的紋絲不亂的頭發(fā)上掸掸,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音蹭秋,去河邊找鬼扰付。 笑死,一個胖子當(dāng)著我的面吹牛仁讨,可吹牛的內(nèi)容都是我干的悯周。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼陪竿,長吁一口氣:“原來是場噩夢啊……” “哼禽翼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起族跛,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤闰挡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后礁哄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體长酗,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年桐绒,在試婚紗的時候發(fā)現(xiàn)自己被綠了夺脾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡茉继,死狀恐怖咧叭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烁竭,我是刑警寧澤菲茬,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站派撕,受9級特大地震影響婉弹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜终吼,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一镀赌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧际跪,春花似錦商佛、人聲如沸蛙粘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽出牧。三九已至,卻和暖如春歇盼,著一層夾襖步出監(jiān)牢的瞬間舔痕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工豹缀, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留伯复,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓邢笙,卻偏偏與公主長得像啸如,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子氮惯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354