亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React初學關于組件數據傳遞方面的一點疑惑?

React初學關于組件數據傳遞方面的一點疑惑?

拉莫斯之舞 2018-10-11 14:15:30
React組件之間(父子組件 兄弟組件)之間的數據傳遞都是通過state props來進行傳遞的。問題是,我在實際這么用的時候,如果組件的層級深度比較深的時候,往往感覺這種數據的傳遞過程比較長,往往跟蹤一個state/props跨越了好幾個組件,處理起來感覺很復雜。有什么更好的處理方式,是不是這種情況下就需要去學習使用Redux?或者說Redux/Flux就是為了解決這種問題的?比如如下組件結構<A>     <B>         <C />     </B></A>最外層組件A的用戶操作影響組件C的狀態,然后需要一個值(state/props)數據傳遞到組件C改變其state/props 重新渲染組件C
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

當組件的層級深度比較深的時候,正解是要使用React中的Context特性,簡單來說它是一種具有穿透組件層級數據流的特性。說明白些,在Redux, Flux, MobX與React Router(路由器)這些庫都是利用這個特性來作數據流的獲取工作。

但Context是一個有可能因版本更新后經常更動的實驗性質特性,官方并不建議用于生產的開發之中(不過上面這些庫都用了,這說明...是有點矛盾)。主要說出來是它是屬于高級的API,怕開發者濫用了。

實際來說,你可以使用這個Context特性,如果你的應用很小,用不著Redux或Flux時。當然,你需要知道它是如何使用與注意一些情況,例如不要把什么數據都往它塞,尤其是全局的數據。用多了你的應用也有可能會影響到效率。最后,因為它會因升版而變動,有可能你在升級時,需要再調整一下。

如果你的應用很復雜,應用很大,就不要用Context特性,改用Redux或Flux,它們里面有比較良好的狀態(state)管控機制,用了它們就不需要再使用React組件中的狀態(state)來控管組件的狀態。它們里面都有可以穿透組件數據流的設計。



查看完整回答
反對 回復 2018-11-08
  • 1 回答
  • 0 關注
  • 459 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號