整合redux的意义何在?

#1

感觉很奇怪,如果是react native,整合redux我是明白的。
但是如果整合到web中,不明白redux是做什么???
如果数据放到redux中,那么用户刷新页面的话,redux-state数据不就消失了么?

#2

组件通信,更好的开发体验等:joy:

可以用于开发 SPA 架构的网站!

#3

更好的对数据进行控制和管理

#4

redux的store相当于一个内存,你刷新网页就会释放内存初始化。

结合大家说的,redux是为了对数据进行控制和管理,以便更好的开发SPA应用。

跟你解释一下关于刷新页面state的变化问题。

刷新页面的时候,state并没有消失,而是初始化了,初始化会带来什么问题呢,就是后端数据的丢失,还有已经改变过的state的状态丢失,但是这真的是个问题吗?不是的,刷新页面,你的网页就相当于第一次加载,那么第一次加载state就会变回初始状态。

这个时候,你应该在组件渲染前请求后端数据,返回新的json保存到state,等到组件didMount时,更新渲染的state。

1 Like
#5

楼主是把redux理解成数据库了么。。。

简单说下state可以是什么:

  1. 发ajax请求时,可以表示处于fetching, fetching_success,fetching_fail中的哪些状态
  2. 如果表单需要表示什么时候可按, 什么时候是禁止的,可以state来表示disabled的状态
  3. 各种交互的状态
#6

最怕各种问题都没看懂的在这里发一堆看不懂的话。楼主,刚才看了你的问题,我一寻思,心里一惊,还真是啊。我用react+redux写了一个购物网站demo,加了东西到购物车,进购物车一看都在,刷新一下,全没了,以前没想过这个哎。

#7

如果你的数据在刷新页面之后还应该存在,那么这些数据本来的位置就应该在URL里啊
可以在刷新页面之后dispatch一个对应的action来更新redux store,平时可以使用中间件一类的东西把store的数据更新到URL

#8

store不是用来存储购物车这种需要长时间缓存的东西,store是你浏览网页过程中开辟的一个内存,刷新网页或者关闭网页,内存就会清除掉,购物车实现还是应该通过浏览单本地存储跟服务端数据结合使用。

#10

感谢各位的回答。。 现在都明白了。。。

#11

之前完全没理解,就瞎问~~

#12

那比如一些数据字典 我是在登陆完成后请求的返回的数据放到store,各页面再取,刷新单个页面 state初始化了 但login不会重新发请求啊 其他页面 就取不到数据字典 这个有什么好的解决办法吗

#13

存到cookie或者storage里面,然后在store中读取cookie或者storage里面的登录信息。

#14

良好的框架搭建----react+react router+redux+react-redux+react-css-module+react-intl 一套下来规则机制虽然多了些,但是单页+组件化+数据单向流动+数据共享+状态统一管理 对付大型一点的项目来说非常好,前端业务流程复杂就需要redux,只要熟悉了redux的逻辑,开发就变得简便了

#15

整合redux的意义在于将程序的数据流和组件进一步解耦,使用redux后,几乎所有组件都是懒惰组件,复用性提高了不少,另外状态统一管理后,状态流会清晰很多,但是对于复杂度不够,或者较少有全局状态共享的程序,用redux会比较繁琐些。

#16

通俗点讲,react把项目进行组件化划分,这个很清楚把,redux的作用简单的讲就是让你把数据统一交给它管理+操作,找数据的时候找redux,增删改数据的时候也找redux,这样就不会造成组件与组件之间把数据丢来丢去这样混乱的场面。当然小项目的话,那就可以考虑不用redux,毕竟要管的东西不会太多。嫌麻烦,你还可以看看Mobx,更适用于规模不太大的项目。

#17

肯定会的啊 如果想刷新页面显示之前的数据,那么这个数据理应是要保持到后台去的,也就是说每添加一个东西就要保存到后台去,然后刷新的时候 读取后台数据