如何从Vuex的变异或动作中调用共享的辅助函数

Mar*_*cel 3 vue.js vuex

我试图分离出一些在Vuex变异中许多调用中常见的代码。我感到这是不受欢迎的,但我不明白为什么。

看下面的一些示例代码的图像:

我在Vuex中添加了此“帮助程序”条目-显然不存在,但是如何从突变和/或动作中调用共享的帮助程序功能“ getColumn”?

在此处输入图片说明


还是我不得不诉诸“ VuexHelper”类的静态方法?:(

就像是:

在此处输入图片说明

注意 我已经看过以下内容:

  1. Vue Mixins-是的,类似的方法可以工作,但Vuex不支持- 而且,vue方法不返回值 ...
  2. 我看过模块,但是这些仍然不能满足我的需求,即返回值的简单可重用函数。

谢谢

der*_*eli 7

我不明白为什么您可能要在商店内放置辅助功能。您可以只使用普通功能。

function getColumn(state, colName) {
  // Do your thing.
}

const vstore = new Vuex.Store({
  // ....
  mutations: {
    removeColumn(state, colName) {
      var column = getColumns(state, colName);
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

另一方面,如果确实需要,则可以访问原始模块及其包含的所有内容:

var column = this._modules.root._rawModule.helpers.getColumns(state, colName);
Run Code Online (Sandbox Code Playgroud)

尽管未记录此语法,但以后的版本可能会更改。

  • 感谢那。尽管我希望获得更多的“内置”支持,但我觉得我将不得不接受这个。尽管 Vuex 不支持 @Gal-Weissman 的答案,但它更符合“正确”的路线。所以现在我会这样做 - 除非有人提出更好的解决方案,否则我会将其标记为答案。 (2认同)