react生命周期測試記錄

1 react生命周期相關(guān)的hook
    a. 初始化:getInitialState
    b. 初始化:getDefaultProps
    c. 掛載: componentWillMount 
    d. 掛載: componentDidMount
    e. 更新:componentWillReceiveProps
    f. 更新:shouldComponentUpdate
    g. 更新:componentWillUpdate
    h. 更新:componentDidUpdate
    i. 卸載:componentWillUnmount
2 測試結(jié)果記錄

1, react的生命周期個人認為可以分為五個部分:初始化(props,state)榔幸、掛載阔蛉、更新阵幸、卸載以及render。
2, 所有的測試結(jié)果將主要圍繞hook,state和props以及渲染展開坡慌。
3黔酥,react在第一次渲染組件的時候,只觸發(fā)初始化洪橘、掛載跪者、渲染部分的hook函數(shù)。需要注意的是熄求,在render之后被觸發(fā)的hook中使用setState都會觸發(fā)二次渲染渣玲,這些hook包括componentDidMount和componentDidUpdate。
4弟晚,在渲染之前componentWillMount和componentWillReceiveProps中使用setState都不會觸發(fā)二次渲染忘衍。但是這并不說明逾苫,渲染之前的hook都不觸發(fā)二次渲染,比如下面所述枚钓。
5铅搓,一個有趣的測試是,在componentDidUpdate和componentWillUpdate中setState一個state值自增秘噪。你猜怎么著狸吞,死循環(huán)。頁面被阻塞指煎,瞬間瀏覽器內(nèi)存吃緊不得不強制關(guān)閉瀏覽器蹋偏。
6, 在componentWillUnmount中可以釋放一些組件中的無用變量。但是在componetWIllUnmount中使用setState不會觸發(fā)渲染至壤。
7威始,據(jù)說在getInitialState或者構(gòu)造中使用props賦值給state會發(fā)生嚴重的bug,是因為getInitialState和構(gòu)造都只被調(diào)用一次嗎?我猜是像街,測試結(jié)果確認這個state不會再次被更新黎棠。建議這個操作放到componnetWillReceiveProps中使用setState完成不管是語義上還是邏輯上都更合適一些。
8,子組件的所有hook都是在父組件render的時候開始镰绎,和我們正常的思維邏輯一致脓斩。并列幾個子組件,子組件的生命周期都是按序的畴栖,嵌套的情況也是符合邏輯的随静,并沒有什么意外情況發(fā)生。
9,propTypes和defaultProps在es2015中吗讶,需要寫在class的外面燎猛,類似App.propTypes和App.defaultProps。另外需要注意的是propTypes只在開發(fā)和測試過程中有用照皆,建議在生產(chǎn)環(huán)境刪除重绷。propTypes的檢查結(jié)果有可能是一個警告,但是這并不會直接導(dǎo)致程序運行失敗膜毁。
10.關(guān)于mixin這個東西昭卓,es2015中已經(jīng)不建議使用了。查閱資料發(fā)現(xiàn)有個高階組件替換mixin的文章爽茴。大致的意思是給組件套一層葬凳,類似于從父級別繼承方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末室奏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子劲装,更是在濱河造成了極大的恐慌胧沫,老刑警劉巖昌简,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绒怨,居然都是意外死亡纯赎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門南蹂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來犬金,“玉大人,你說我怎么就攤上這事六剥⊥砬辏” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵疗疟,是天一觀的道長该默。 經(jīng)常有香客問我,道長策彤,這世上最難降的妖魔是什么栓袖? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮店诗,結(jié)果婚禮上裹刮,老公的妹妹穿的比我還像新娘。我一直安慰自己庞瘸,他們只是感情好捧弃,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恕洲,像睡著了一般塔橡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上霜第,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天葛家,我揣著相機與錄音,去河邊找鬼泌类。 笑死癞谒,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的刃榨。 我是一名探鬼主播弹砚,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼枢希!你這毒婦竟也來了桌吃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤苞轿,失蹤者是張志新(化名)和其女友劉穎茅诱,沒想到半個月后逗物,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瑟俭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年翎卓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摆寄。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡失暴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出微饥,到底是詐尸還是另有隱情逗扒,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布畜号,位于F島的核電站缴阎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏简软。R本人自食惡果不足惜蛮拔,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痹升。 院中可真熱鬧建炫,春花似錦、人聲如沸疼蛾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽察郁。三九已至衍慎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間皮钠,已是汗流浹背稳捆。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留麦轰,地道東北人乔夯。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像款侵,于是被迫代替她去往敵國和親末荐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容