Vuex:直接访问存储还是传递属性?

Cha*_*les 5 javascript frontend vue.js vuex

我正在将纯 Vue 应用程序迁移到 Vuex,但我不确定将数据传递到下游组件的最佳方式。Vue 的方式是将它们作为属性传递:

<component :my-prop="myProp"/>
Run Code Online (Sandbox Code Playgroud)

Vuex的方式好像是直接访问store:

computed: {
    myProp: function() {
        return this.$store.state.myProp;
    }
}
Run Code Online (Sandbox Code Playgroud)

Vuex 方式不是倾向于将视图(组件)和数据(存储)层结合得更紧密吗?另一方面,向下游传递属性可能会有点痛苦。

在 Vuex 中访问存储数据的推荐方式是什么?

Ste*_*son 2

不确定“官方”建议,但我个人更喜欢使用属性。这样,您就可以将组件与存储分离。例如,您的组件可以重用(在其他项目中,稍后等)并且没有存储作为依赖项。

如果商店发生变化,例如 VueX 的新版本,这是稍后的另一个最佳实践,只需更改父级,所有组件都会以相同的方式运行。