在Vue vs state中创建全局变量

问题描述 投票:2回答:2

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

我可以像这样访问Vuex状态:

{{ store.$state.myvar }}

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

{{ myvar }}

这可能吗?

vue.js vuejs2 global-variables vuex
2个回答
3
投票

在组件中添加计算属性:

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

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


1
投票

你可以做任何你想做的事。你应该尝试组织你的状态,以便“有一个适合一切的地方,一切都在其位置”。

当然,您可以在Vue中创建和引用全局变量。比方说,你可以做var myVar = store.$state.myvar,并且你在Vuex的var中有一个全局别名。但是,很大,但是,如果你选择使用Vuex,那么你需要完成这个选择。在全局状态下创建别名将很快导致冲突和混乱。 Vue模仿MVVM,受到Elm的启发。它希望您将状态与界面组件分开。这可能导致引用状态的长路径,但是收益是值得的 - 你不需要在整个地方同步和共享一点点状态。这回答了这个问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.