鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 關(guān)于redux 的使用問題?是否有必要使用redux?

關(guān)于redux 的使用問題?是否有必要使用redux?

情況是這樣的:
1.我現(xiàn)在會將兩個(gè)組件(A,B)放置在同一個(gè)父組件(p)下面,通過父組件(p)的state來傳遞數(shù)據(jù),實(shí)現(xiàn)組件間數(shù)據(jù)共享,具體流程:B組件觸發(fā)父組件P傳遞下來的事件作出相應(yīng)的動作繼而setState(新的state數(shù)據(jù)可能是B組件傳遞的值,也有可能是父組件拿到值之后請求得到的數(shù)據(jù))然后將state傳遞給A組件,A組件進(jìn)行頁面更新。
2.關(guān)于發(fā)送請求的地方,按照我上面說的,我在組件里面比如(componentDidMount,componentWillReceiveProps)里面直接調(diào)用封裝的request(沒有走redux,saga),
然后setState,進(jìn)而更新頁面。
3.盡量不用redux,除非組件嵌套太深,并且需要組件間共享數(shù)據(jù)時(shí)再用。
想問下這種作法是否可行,和redux那套做法有什么優(yōu)缺點(diǎn),因?yàn)楣就乱恢痹谕虏畚业膶懛ā?br>希望得到大神解答

回答
編輯回答
雨萌萌

你這個(gè)做法React官方稱為Lifting State Up,因此并不是野雞行為

如果你能保證結(jié)構(gòu)的扁平(至少在大部分情況下),同時(shí)控制共享狀態(tài)的組件的規(guī)模,沒必要用redux。

只有你的組件結(jié)構(gòu)太深,或者有很多個(gè)不同層次的組件同時(shí)依賴同一個(gè)狀態(tài),才需要使用Redux。新技術(shù)是有成本的,redux的模板代碼也是廣為詬病,只有你覺得當(dāng)前的技術(shù)方案力不從心時(shí)再考慮新技術(shù)。

另外react16.3會引入一個(gè)新的context API,redux的作者都戲稱“可以不用Redux”了,也許這個(gè)新的context API會改善你的處境

2018年4月21日 18:51