React的深入淺出
阿新 • • 發佈:2017-09-15
upd 響應式 reat 調用 使用 管理 ops 新的 https
react
組件重新渲染有兩種途徑:
1、自身調用setState;
2、父組件傳入新的props。
3、但這兩種途徑都不會必然調用render而引起重新渲染,
都會先經過shouldComponentUpdate進行判斷,
如果返回true,則調用render,就會對該組件的所有子組件傳入新的props,
因此所有子組件都會可能重新渲染(但是是否每一個子組件都會更新,
取決與子組件的shouldComponentupdate的返回值)。
1、props:父級分發先來的屬性;
2、state:組件內部自行管理的組件;
3、React沒有數據向上回溯的能力,數據只能單向向下分發,或自行內部消化。
1、因為React無法讓兩個組件互相交流,使用對方數據。
解決辦法:將state放到共有的父組件中來管理,在作為props分發回子組件。
2、子組件改變父組件state的辦法只能是通過onClick觸發父組件聲明好的回調,
也就是父組件提前聲明好函數或方法作為契約描述自己的state將如何變化,
再將它同樣作為屬性交給子組件使用。這樣就出現了一個模式:
數據總是單向從頂層向下分發的,但是只有子組件回調在概念上可以
回到state頂層影響數據。這樣state一定程度上是響應式的。
相關鏈接:
https://www.zhihu.com/question/41312576?sort=created
https://www.zhihu.com/question/29504639
待續。。。。。
React的深入淺出