redux是什么时候渐渐变成了接口数据的管理工具了,我发现在dva、umi还是一些文章中都是使用redux来处理接口数据!有没有人了解,能不能说一下发展趋势,因为我始终还记得这句话
“如果你不知道是否需要 Redux,那就是不需要它。”
另外就是在dva中的使用,接口貌似使用redux统一管理,结构有点像MVVM+MVC模式,然后我就混乱了?这是趋势吗?
为什么使用redux来处理接口数据?
https://juejin.im/post/5afe7a2c518825673b6243a6
掘金的一篇文章介绍使用graphql的,原文说代替redux,很显然就是把redux作为接口数据处理模块了,另外可以试试看看umi和dva设计
我觉方便不是主要,主要是接口模块统一处理了,但是使用redux处理感觉怪怪的
代替redux
取代了 redux 并不是正好替代了 redux 的功能的意思吧. 如果有了 GraphQL, redux 的复杂度确实有点多余了, 那样也就不用了. 但是 GraphQL 做的事情可以比 redux 多.
umi和dva设计
没在用 dva, 大概是知道. 我感觉还是现在为了方便, MVC 分离并不是那么明确界限的. 通常说的 store 就是把部分的 Controller 功能带进去了. 至少框架层面不进行限制的话, 要做就是能做了.
“redux主要对异步数据做整合,你不用的话,你的异步写的到处都是,怎么对数据做整合,对逻辑做复用呢?”
我理解有误,还是你描述有误,你这句话给人感觉就是,
没有redux,异步到处都有的问题解决不了
文章的意思就是,他们处理接口数据都是通过redux处理的,所以要获得符合规范的数据,就需要dispatch处理很麻烦
graphql纯粹就是是一个后端的东西,方便前端获取不同格式的数据。
其实redux统一处理接口确实会规范很多的, 但是有种脱离redux初衷的感觉…
redux是用来管理数据状态的,每一个状态下的全局state,唯一代表整个网站的数据。
redux让整个的数据流向更清楚,所有的view层数据来源都是来自redux中的state。如果有公用的数据也可以数据共享。
如果只是一般小型的项目,可以不用redux,也就是您说的 “如果你不知道是否需要 Redux,那就是不需要它。”。因为较大的项目,整个项目的数据流会变得复杂。
因为使用redux中的dispatch触发一个action,执行reducer这一套会带来一定的代码量,所以有些人会把公用的一些接口请求放在redux里面,不公用的直接在react组件里面,但是这样会带来数据的混乱。不建议这样使用。
总之,react关注的是数据,不管是api请求过来的数据,还是本身前端暂存的数据,和数据是否从接口来的无关。