vuex 在考虑用户刷新页面的情况下是不是并不实用?

2019-06-20 09:05:11 +08:00
 adajoy
3645 次点击
所在节点    程序员
19 条回复
muxw6
2019-06-20 09:06:32 +08:00
vuex-persistedstate 了解一下,将 vuex 的数据存放在 sessionStorage 中
opengps
2019-06-20 09:08:43 +08:00
现在的 js 动态修改页面都怕刷新
mmmao
2019-06-20 09:09:35 +08:00
同问
顶一个
OSF2E
2019-06-20 09:22:32 +08:00
对于内容编辑一类的业务场景,恢复意外关闭的会话的功能很重要
shino161
2019-06-20 09:23:43 +08:00
不刷新页面完全可以用 WebStorage,vuex 用来做一些数据的缓存很方便吧。
moxiaonai
2019-06-20 09:26:01 +08:00
1 楼正解
belin520
2019-06-20 09:26:56 +08:00
你这是对 VUEX 状态管理器的使用误解

当然,你可以用 vuex-localstorage 类似的插件实现你这个需求
woodensail
2019-06-20 09:28:16 +08:00
vuex 核心功能本来就就不是数据持久化啊。核心是统一状态管理,用来解决复杂页面数据无法管理的问题。
TimPeake
2019-06-20 09:34:12 +08:00
既然楼主问到了这个问题,那么基本可以判断楼主应该不太清楚 Vuex 的被设计出来的目的。甚至楼主的项目应该是不适合使用 Vuex 的,大概率是为了使用而使用。
Vuex 的作用是组件之间传递数据的,理想的使用需求是: 组件之间传递数据复杂或者常规的方法无法解决。
bhaltair
2019-06-20 09:37:51 +08:00
vuex 的数据可以存放在 Storage 中
zcFE
2019-06-20 09:40:03 +08:00
我之前也有这种疑问,一刷新就变了,难道 vuex 里的数据只能存放公用不变的数据?
TimPeake
2019-06-20 09:42:30 +08:00
@zcFE Vue 组件里 给 data 赋值,this.name="xxx",赋值完毕后,刷新页面,你猜 name 的值还有吗?简单理解来说,Vuex 和这个一样。
no1xsyzy
2019-06-20 09:47:58 +08:00
更偏向于一个 Redis 的功能而不是 Oracle / MySQL / SQL Server 的功能吧
Redis 现在也能持久化了(虽然不是那么好),所以你真要用一些 localStorage 的同步实现也不是问题。
wxsm
2019-06-20 09:49:00 +08:00
这个问题与 vuex 无关,vuex 也并不需要解决这个问题。正如楼上所说,只有当你对它的目的根本不了解的情况下才会提出这种问题。
red2dog
2019-06-20 09:50:29 +08:00
当你需要他的时候你就会找到他,当你不需要他的时候,你就永远不知道他的使用场景。
lauix
2019-06-20 09:52:39 +08:00
求解 vuex 的应用场景在哪?
love
2019-06-20 10:46:08 +08:00
这哪跟哪啊,这问题问的好莫名奇妙,你的应用没有运行时状态吗
adajoy
2019-06-20 13:35:12 +08:00
@TimPeake 我用 vuex 做组件间的数据共享,这些数据都是通过接口异步获取的。如果这两个组件存在于不同的路由下,并且存在逻辑上的先后顺序。如果用户不刷新页面,那么在第一个页面 dispatch 以后,第二个页面可以直接从 store 里取数据。如果用户刷新了,那就需要在这两个组件的生命周期里都去调用 dispatch 获取数据
adajoy
2019-06-20 13:38:28 +08:00
@TimPeake 如果这两个组件存在于同一个路由下,A 组件去请求数据后存在了状态中,但是 B 组件在加载后需要立即获取状态中的数据做进一步操作,这个时候并不能保证 A 组件的请求已经回来了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/575687

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX