在Vue中创建全局变量的最佳方法是什么?是用Vuex吗?
我可以像这样访问Vuex状态:
{{ store.$state.myvar }}
这有点乱。我宁愿这样做:
{{ myvar }}
这可能吗?
在组件中添加计算属性:
computed: {
myVar: {
get() { return this.$store.state.myVar; },
set(value) { this.$store.commit('updateMyVar', value); }
},
}
这允许您像组件中的任何其他属性一样使用它。
你可以做任何你想做的事。你应该尝试组织你的状态,以便“有一个适合一切的地方,一切都在其位置”。
当然,您可以在Vue中创建和引用全局变量。比方说,你可以做var myVar = store.$state.myvar
,并且你在Vuex的var中有一个全局别名。但是,很大,但是,如果你选择使用Vuex,那么你需要完成这个选择。在全局状态下创建别名将很快导致冲突和混乱。 Vue模仿MVVM,受到Elm的启发。它希望您将状态与界面组件分开。这可能导致引用状态的长路径,但是收益是值得的 - 你不需要在整个地方同步和共享一点点状态。这回答了这个问题吗?