在Vue vs状态下创建全局变量

时间:2018-07-20 13:00:41

标签: vue.js vuejs2 global-variables vuex

在Vue中创建全局变量的最佳方法是什么?是否可以使用Vuex?

我可以这样访问Vuex状态:

{{ store.$state.myvar }}

这有点混乱。我宁愿这样做:

{{ myvar }}

这可能吗?

2 个答案:

答案 0 :(得分:3)

在您的组件中添加一个计算属性:

computed: {
   myVar: {
      get() { return this.$store.state.myVar; },
      set(value) { this.$store.commit('updateMyVar', value); }
   },
}

这使您可以像使用组件中的其他任何属性一样使用它。

答案 1 :(得分:1)

可以做任何您想做的事情。您应该尝试组织您的状态,以使“所有事物都有一个 位置,而所有事物都位于其位置”。

当然,您可以在Vue中创建和引用全局变量。您可以说,var myVar = store.$state.myvar,并且在Vuex中为var提供了全局别名。但是,很大,但是,如果您选择使用Vuex,那么您就必须遵循该选择。在全局状态下创建别名将迅速导致冲突和混乱。 Vue隐约是MVVM,受到Elm的启发。它希望您将状态与界面组件分开。这可能会导致冗长的状态参考项路径,但回报是值得的-您无需在整个地方同步和共享少量状态。可以回答这个问题吗?