V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
adajoy
V2EX  ›  程序员

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

  •  
  •   adajoy · 2019-06-20 09:05:11 +08:00 · 3658 次点击
    这是一个创建于 1987 天前的主题,其中的信息可能已经有所发展或是发生改变。
    19 条回复    2019-06-20 13:38:28 +08:00
    muxw6
        1
    muxw6  
       2019-06-20 09:06:32 +08:00   ❤️ 1
    vuex-persistedstate 了解一下,将 vuex 的数据存放在 sessionStorage 中
    opengps
        2
    opengps  
       2019-06-20 09:08:43 +08:00
    现在的 js 动态修改页面都怕刷新
    mmmao
        3
    mmmao  
       2019-06-20 09:09:35 +08:00
    同问
    顶一个
    OSF2E
        4
    OSF2E  
       2019-06-20 09:22:32 +08:00
    对于内容编辑一类的业务场景,恢复意外关闭的会话的功能很重要
    shino161
        5
    shino161  
       2019-06-20 09:23:43 +08:00
    不刷新页面完全可以用 WebStorage,vuex 用来做一些数据的缓存很方便吧。
    moxiaonai
        6
    moxiaonai  
       2019-06-20 09:26:01 +08:00 via Android
    1 楼正解
    belin520
        7
    belin520  
       2019-06-20 09:26:56 +08:00
    你这是对 VUEX 状态管理器的使用误解

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