如何在Vuex中使用自定义对象方法?

时间:2019-01-15 13:44:04

标签: javascript vue.js vuex

我有几个自定义js对象,其中封装了针逻辑。 因此,这些对象与vuex根本没有任何关系,就像这样:

export default class Property {
   constructor(object) {
      // some logic
   }
   addChild(property) {
      // some logic
   }
}

此外,我在vue组件中有一个按钮,它触发了vue方法:

methods: {
    addItem() {
        this.property.addChild();
    },
},

有问题: this.property-它是来自vuex存储的对象。 因此,当我以这种方式调用方法时,会出现vue错误:

Error: [vuex] Do not mutate vuex store state outside mutation handlers.

是的,我知道Vue想要什么。 但是对我来说,将一些复杂的逻辑封装在针对象中更为清晰。另外,我想将vuex用于全局应用程序状态。

所以,请您分享一下如何处理vuex和自定义对象方法的经验吗?

1 个答案:

答案 0 :(得分:0)

如果您想使用vuex,则只需使用mutation更改其状态即可。 因此,在Property对象的addChild函数中, 您将在哪里更改状态,我想您会这样做

Store.state.xxx = 'new'

与其说那样做,不如说是突变

Store.commit('alterState')

在复杂性方面并没有太大差异,对吧?