vuex要写一个能调用的公共方法应该写在哪里?

前提:
1、方法内部需要使用到state的状态数据
2、该方法要多次调用或者循环调用
3、这个方法肯定不能写在action里面,它不修改state里的状态,只是利用state数据和参数,做一些比较计算,并返回新结果

我现在的做法是,在外部定义这个公共函数,然后每次都把state作为参数传进去

export function 函数名(state, 其他参数){
    //实现
}

这样虽然能实现我的意图,但是我总感觉不妥当呢?请问有没有更好的做法。

阅读 15.4k
5 个回答

公共函数文件可以直接

import store from '@/store'

export function func1() {
  const state1 = store.state.module_name.state1
  return state1
}

你可以在main.js中注册一个全局方法

Vue.prototype.someMethod = function(state){
    // do something...
}

然后在组件内调用

this.someMethod(state)

一般来说这种方式注册的都是使用频次很高的方法, 如处理后台返回的结果的函数、自己写的formatTime方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题