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

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

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

回答
編輯回答
雨萌萌

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

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

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

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

2018年4月21日 18:51