在Vue中创建全局变量的最佳方法是什么?是否可以使用Vuex?
我可以这样访问Vuex状态:
{{ store.$state.myvar }}
这有点混乱。我宁愿这样做:
{{ myvar }}
这可能吗?
答案 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的启发。它希望您将状态与界面组件分开。这可能会导致冗长的状态参考项路径,但回报是值得的-您无需在整个地方同步和共享少量状态。可以回答这个问题吗?