动态填充Vuex状态

时间:2018-05-17 13:07:14

标签: javascript vue.js vuejs2 vuex

我需要根据根组件中的data变量加载不同版本的状态。

App.vue:

export default {
  store : store,
  name: 'app',
  data() {
    clientId : 1  
  }
}

store.js:

export const store = new Vuex.Store({
  state : {
    clientConfig : clientConfig
});

clientConfig将存储在单独的文件中。

根据初始Vuejs应用程序的一些输入,实现动态/程序化加载Vuex状态的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案:

export const store = new Vuex.Store({
  state : {
    clientConfigs :{
      "1": clientConfig1,
      "2": clientConfig2
    },
    clientId: "1"
  },
  getters: {
    currentClientConfig: state => {
      return state.clientConfigs[state.clientId]
    }
  },
  mutations: {
   setClientId (state, newValue) {
     state.clientId = newValue
   }
  }
});

在您的组件中,您可以通过this.$store.getters.currentClientConfig

访问配置

要更新clientId,您可以使用突变。在组件中,您可以使用 this.$store.commit('setClientId', yourNewClientId)