为什么使用redux来处理接口数据?

#1

redux是什么时候渐渐变成了接口数据的管理工具了,我发现在dva、umi还是一些文章中都是使用redux来处理接口数据!有没有人了解,能不能说一下发展趋势,因为我始终还记得这句话
“如果你不知道是否需要 Redux,那就是不需要它。”
另外就是在dva中的使用,接口貌似使用redux统一管理,结构有点像MVVM+MVC模式,然后我就混乱了?这是趋势吗?

#2

文章丢出来看看…

感觉大家为了开发方便, 不会去管那么多, 毕竟 js 语言当中已经被 hack 太多次了.

#3

https://juejin.im/post/5afe7a2c518825673b6243a6
掘金的一篇文章介绍使用graphql的,原文说代替redux,很显然就是把redux作为接口数据处理模块了,另外可以试试看看umi和dva设计
我觉方便不是主要,主要是接口模块统一处理了,但是使用redux处理感觉怪怪的

#4

redux主要对异步数据做整合,你不用的话,你的异步写的到处都是,怎么对数据做整合,对逻辑做复用呢?

#5

redux设计目的不是为了处理异步数据,只是为了解决数据之间的传递,中间件才是为了解决redux异步而出现的

#6

你仔细看哈我说的,我哪里说 ‘redux设计目是处理异步数据’ 了

#7

代替redux

取代了 redux 并不是正好替代了 redux 的功能的意思吧. 如果有了 GraphQL, redux 的复杂度确实有点多余了, 那样也就不用了. 但是 GraphQL 做的事情可以比 redux 多.

umi和dva设计

没在用 dva, 大概是知道. 我感觉还是现在为了方便, MVC 分离并不是那么明确界限的. 通常说的 store 就是把部分的 Controller 功能带进去了. 至少框架层面不进行限制的话, 要做就是能做了.

#8

“redux主要对异步数据做整合,你不用的话,你的异步写的到处都是,怎么对数据做整合,对逻辑做复用呢?”
我理解有误,还是你描述有误,你这句话给人感觉就是,
没有redux,异步到处都有的问题解决不了

#9

文章的意思就是,他们处理接口数据都是通过redux处理的,所以要获得符合规范的数据,就需要dispatch处理很麻烦
graphql纯粹就是是一个后端的东西,方便前端获取不同格式的数据。

其实redux统一处理接口确实会规范很多的, 但是有种脱离redux初衷的感觉…

#10

真的杠。。。

#11

对,我杠,你最厉害,你说的对,我错了,我不应该反驳你,毕竟我阅读理解不到位

#12

你理解的跟我想的差不多,我也觉得不用所有数据都经过redux 存储到store
只有需要处理 多个组件共享数据的时候用redux处理会方便很多

1 Like
#13

个人观点,redux 的作用可能是尽可能的让视图层与数据层解耦。数据统一给 store 维护,这样可以实现数据的共享,比如登录的一些信息,可能很多页面都要访问的。

#14

跟我的疑惑一样哎,而且现在接手的老项目,就是dva和umi的,都是通过redux去掉接口的,虽然规范了,但是有点麻烦。。。。

#15

redux是用来管理数据状态的,每一个状态下的全局state,唯一代表整个网站的数据。
redux让整个的数据流向更清楚,所有的view层数据来源都是来自redux中的state。如果有公用的数据也可以数据共享。
如果只是一般小型的项目,可以不用redux,也就是您说的 “如果你不知道是否需要 Redux,那就是不需要它。”。因为较大的项目,整个项目的数据流会变得复杂。
因为使用redux中的dispatch触发一个action,执行reducer这一套会带来一定的代码量,所以有些人会把公用的一些接口请求放在redux里面,不公用的直接在react组件里面,但是这样会带来数据的混乱。不建议这样使用。
总之,react关注的是数据,不管是api请求过来的数据,还是本身前端暂存的数据,和数据是否从接口来的无关。