在不使用任何狀態管理方案的前提下,React 組件之間共享狀態,只能靠 props 傳播。
- 父->子的傳播非常容易,直接 A->B
- 子->父 :調用父組件傳遞過來的方法去實現。傳遞的數據放在參數里面。
(父組件將一個改變自身狀態的方法傳遞給子組件,子組件去調用的同時將一些參數傳給它) - 隔代傳, A->B->C....Z
- 兄弟之間,
React
傳遞數據的范式是自上而下傳遞
,這顯然違背了這一范式,所以為了處理兄弟組件簡單通信,就有了狀態提升這一概念。簡單來說,React中的兄弟組件簡單通信,就是所謂的狀態提升。
狀態提升的場景
兄弟組件中,它們各自的內容保存在各自的 state
當中,要怎么做才能使兩個組件共享數據呢?
答案是 狀態提升
,也就是給他們創建一個共同的父親,將數據保存在它們的父組件中,使這兩個兄弟組件之間可以從父組件中到拿到共享的狀態,狀態彼此能夠同步。
案例可以參考官方文檔。