用于突变的Vuex辅助方法

时间:2018-01-12 04:09:43

标签: javascript vue.js vuejs2 vuex

在Vuex中,我的突变对象如下:

 mutations: {
     someMethod(){
        this.someReusableCode();
     },
     anotherMethod(){
        this.someReusableCode();
     },
     someReusableCode(){
       ...
     }
 }

但是,我收到的错误是someReusableCode()未定义。定义someReusableCode()方法的最佳位置在哪里,这样才有效?

2 个答案:

答案 0 :(得分:2)

您可以在path对象($( "#sortable1" ).sortable({ items: "li:not(.ui-state-disabled)" }); 的实例)之外定义共享方法。

store

Vuex.Store
const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) { this.inc(state) },
    decrement(state) { this.dec(state) }
  }
})

// Shared functions of store
store.inc = state => state.count++;
store.dec = state => state.count--;

答案 1 :(得分:-1)

您可以将helper方法保留在store.js中。 只需这样做:

export default new Vuex.Store({
  state: {
    count: 0
  },
  helperMethods: {
    inc: (input, increment) => input + increment
  mutations: {
    incrementByFive(state) { state.count = this.helperMethods.inc(state.count,5) },
  }
})