V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shintendo
V2EX  ›  Vue.js

Vuex 的问题,使用 useStore()获取到的 store,和直接 import store 有什么区别吗?

  •  1
     
  •   shintendo · 168 天前 · 1228 次点击
    这是一个创建于 168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以及,在 Vue 组件以外的地方访问 store 的标准姿势是什么?

    9 条回复    2021-12-07 11:57:03 +08:00
    mxT52CRuqR6o5
        1
    mxT52CRuqR6o5  
       168 天前
    大部分情况下应该是没区别的,一般都是用 useStore 吧
    如果一个页面的某个组件有多个 vue 实例,又 provide 了不同的 store 时就会有区别
    mxT52CRuqR6o5
        2
    mxT52CRuqR6o5  
       168 天前
    想了一下好像不太对,不 useStore 有可能会导致不能 Reactive (不是很确定)
    wxsm
        3
    wxsm  
       168 天前
    https://next.vuex.vuejs.org/zh/guide/typescript-support.html

    useStore 主要是为了解决 TypeScript 的类型问题。

    > 不 useStore 有可能会导致不能 Reactive (不是很确定)

    这个问题是不存在的。因为即使 useStore 也没有 reactive ,需要结合 computed 使用。
    lujjjh
        4
    lujjjh  
       168 天前   ❤️ 1
    没有用过 Vuex ,但是猜测后者在 SSR 的时候会有问题,毕竟不可能让所有用户共享同一个 store 实例。
    mxT52CRuqR6o5
        5
    mxT52CRuqR6o5  
       167 天前   ❤️ 1
    @wxsm
    不应该啊,不能 reactive 那这 vuex 有啥用
    guyskk0x0
        6
    guyskk0x0  
       163 天前
    同问,刚在 Vuex discusstions 提了这个问题,可以关注一下 https://github.com/vuejs/rfcs/discussions/270#discussioncomment-1751815
    shintendo
        7
    shintendo  
    OP
       163 天前
    @guyskk0x0 这么说就是 SSR 的问题,反过来说,不用 SSR 的话就没关系了
    guyskk0x0
        8
    guyskk0x0  
       163 天前
    @shintendo #7 对的
    guyskk0x0
        9
    guyskk0x0  
       161 天前
    @shintendo #7 用了 SSR 应该也没事,Vue SSR 有 runInContext 选项,只是渲染比较慢。我还想到个优化方案,欢迎探讨: https://github.com/harttle/harttle.github.io/issues/160
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2300 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 00:32 · PVG 08:32 · LAX 17:32 · JFK 20:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.