情况是这样的:
1.我现在会将两个组件(A,B)放置在同一个父组件(p)下面,通过父组件(p)的state来传递数据,实现组件间数据共享,具体流程:B组件触发父组件P传递下来的事件作出相应的动作继而setState(新的state数据可能是B组件传递的值,也有可能是父组件拿到值之后请求得到的数据)然后将state传递给A组件,A组件进行页面更新。
2.关于发送请求的地方,按照我上面说的,我在组件里面比如(componentDidMount,componentWillReceiveProps)里面直接调用封装的request(没有走redux,saga),
然后setState,进而更新页面。
3.尽量不用redux,除非组件嵌套太深,并且需要组件间共享数据时再用。
想问下这种作法是否可行,和redux那套做法有什么优缺点,因为公司同事一直在吐槽我的写法。
希望得到大神解答
你这个做法
React
官方称为Lifting State Up,因此并不是野鸡行为如果你能保证结构的扁平(至少在大部分情况下),同时控制共享状态的组件的规模,没必要用
redux
。只有你的组件结构太深,或者有很多个不同层次的组件同时依赖同一个状态,才需要使用
Redux
。新技术是有成本的,redux
的模板代码也是广为诟病,只有你觉得当前的技术方案力不从心时再考虑新技术。另外
react
在16.3
会引入一个新的context API
,redux
的作者都戏称“可以不用Redux
”了,也许这个新的context API
会改善你的处境