shintendo
V2EX  ›  Vue.js

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

  •  1
     
  •   shintendo · Nov 30, 2021 · 2781 views
    This topic created in 1652 days ago, the information mentioned may be changed or developed.

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

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

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

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

    这个问题是不存在的。因为即使 useStore 也没有 reactive ,需要结合 computed 使用。
    lujjjh
        4
    lujjjh  
       Nov 30, 2021   ❤️ 1
    没有用过 Vuex ,但是猜测后者在 SSR 的时候会有问题,毕竟不可能让所有用户共享同一个 store 实例。
    mxT52CRuqR6o5
        5
    mxT52CRuqR6o5  
       Dec 1, 2021   ❤️ 1
    @wxsm
    不应该啊,不能 reactive 那这 vuex 有啥用
    guyskk0x0
        6
    guyskk0x0  
       Dec 5, 2021
    同问,刚在 Vuex discusstions 提了这个问题,可以关注一下 https://github.com/vuejs/rfcs/discussions/270#discussioncomment-1751815
    shintendo
        7
    shintendo  
    OP
       Dec 5, 2021
    @guyskk0x0 这么说就是 SSR 的问题,反过来说,不用 SSR 的话就没关系了
    guyskk0x0
        8
    guyskk0x0  
       Dec 5, 2021
    @shintendo #7 对的
    guyskk0x0
        9
    guyskk0x0  
       Dec 7, 2021
    @shintendo #7 用了 SSR 应该也没事,Vue SSR 有 runInContext 选项,只是渲染比较慢。我还想到个优化方案,欢迎探讨: https://github.com/harttle/harttle.github.io/issues/160
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3436 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 10:50 · PVG 18:50 · LAX 03:50 · JFK 06:50
    ♥ Do have faith in what you're doing.