在Vue vs state中创建全局变量



在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。它希望您将状态与接口组件分离。这可能会导致指向状态参考项的路径很长,但回报是值得的——你不需要到处同步和共享状态的点点滴滴。这能回答问题吗?

最新更新