vue.js - 如何从 Vuex 中的突变或 Action 中调用共享辅助函数

标签 vue.js vuex

我试图分离出一些在我的 Vuex 突变中的许多调用中常见的代码。我感觉这是不鼓励的,但我不明白为什么。

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

我已经在 Vuex 中添加了这个“助手”条目——这显然不存在,但我如何从突变和/或 Action 中调用共享助手函数“getColumn”?

enter image description here


或者我是否必须在“VuexHelper”类上调用静态方法? :(

类似于:

enter image description here

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

  1. Vue Mixins - 是的,类似的东西可以工作但不是 Vuex 支持 - 此外,vue 方法不返回值...
  2. 我查看了模块,但这些仍然没有提供我需要的东西,即返回值的简单可重用函数。

谢谢

最佳答案

我不明白您为什么要将辅助函数放在商店中。您可以只使用普通函数。

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

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

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

var column = this._modules.root._rawModule.helpers.getColumns(state, colName);

虽然此语法没有记录并且可以在以后的版本中更改。

关于vue.js - 如何从 Vuex 中的突变或 Action 中调用共享辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51915776/

相关文章:

javascript - Vue 输入传递一个数组

javascript - 为什么不先移动鼠标就无法滚动视差?

vue.js - Vuex 计算属性仅适用于 getter

html - 输入元素(由vuetify生成)不会中断长文本的行

vue.js - Vuex - 何时使用 getters 何时使用状态

vue.js - 具有标准化数据的 Vuex getter 不是响应式的

javascript - 如何在vue js中首先选择一个时间并在所有日子中使用它?

javascript - 在 Vuex 商店中实现常见任务的最佳方式是什么

vuejs2 - VueJS 如何将两个参数传递给 Vuex 操作

vue.js - 从存储在 vuex 中的 axios 中获取未定义的 response.data