Vuex辅助函数map用法汇总

467 阅读1分钟

问题

当访问某个数据项嵌套太深了,能不能优化一下访问的方式?

答:用mapState把公共数据(vuex.store) 映射 到本组件内部的计算属性

map的作用就是:简化使用Vuex中state,getters,mutations,actions

map用法汇总

image.png

使用步骤:

1.在需要使用Vuex属性的组件中引入

// 1. 导入辅助函数mapState,它是在vuex中定义的一个工具函数。
//  es6 按需导入 import { mapState } from 'vuex' 
import { mapState } from 'vuex'

2.注册模块

2.1全局computed:{...mapState(["xxx"])}
2.2模块computed:{...mapState("模块名",["xxx"])}

3.模块使用直接调用,在export default中需要前面加this

4.## Vuex-辅助函数mapState对数据重命名

把中括号改为大括号,前面写"新名字":"模块名"
...mapState({'新名字': 'xxx'})

注意:

1.注册模块时是一个数组,如果需要引入多个可以直接逗号隔开
2.Vuex中state,getters需要写入组件computed中
3.mutations,actions需要写入组件methods中

代码如下:

// 1. 导入辅助函数mapState,它是在vuex中定义的一个工具函数。
//  es6 按需导入 import { mapState } from 'vuex' 
import { mapState } from 'vuex'

computed: {
   // 说明1: ...对象 是把对象展开,合并到computed
   // 说明2: mapState是一个函数 
   //  ['数据项1', '数据项2']
   ...mapState(['xxx']),
   ...mapState({'新名字': 'xxx'})
}

使用

this.xxx
{{xxx}}

总结:如果数据复用不多,可以直接使用Vuex的方法,如果项目比较大,数据多,就需要用到map