1. mapState 方法
用于帮助我们映射 state 中的数据为计算属性:
computed: { //借助 mapState 生成计算属性:sum、school、subject(对象写法) ...mapState({sum:'sum',school:'school',subject:'subject'}), //借助 mapState 生成计算属性:sum、school、subject(数组写法) ...mapState(['sum','school','subject']), },
2. mapGetters 方法
用于帮助我们映射getters
中的数据为计算属性:
computed: { //借助 mapGetters 生成计算属性:bigSum(对象写法) ...mapGetters({bigSum:'bigSum'}), //借助 mapGetters 生成计算属性:bigSum(数组写法) ...mapGetters(['bigSum']) },
例子
不用mapState,mapGetters方法,原始写:
<template> <div> <h1>当前求和为:{{$store.state.sum}}</h1> <h3>当前求和放大 10 倍为:{{$store.getters.bigSum}}</h3> <h3>我在{{$store.state.school}},学习{{$store.state.subject}}</h3> </div> </template> <script> export default { name:'Count', } </script>
store/index.js:
//该文件用于创建 vuex 中最为核心的 store import Vue from 'vue' //引入 Vuex import Vuex from 'vuex' //应用 Vuex 插件 Vue.use(Vuex) //准备 state——用于存储数据 const state = { sum:1, //当前的和 school:'尚硅谷', subject:'前端' } //准备 getters——用于将 state 中的数据进行加工 const getters = { bigSum(state){ return state.sum*10 } } //创建并暴露 store export default new Vuex.Store({ state, getters })
用 mapState,mapGetters 方法写
count.vue
<template> <div> <h1>当前求和为:{{sum}}</h1> <h3>当前求和放大 10 倍为:{{bigSum}}</h3> <h3>我在{{school}},学习{{subject}}</h3> </div> </template> <script> import {mapState,mapGetters} from 'vuex' export default { name:'Count', data() { return { n:1, //用户选择的数字 } }, computed:{ //借助 mapState 生成计算属性,从 state 中读取数据。(对象写法) // ...mapState({sum:'sum',school:'school',subject:'subject'}), //借助 mapState 生成计算属性,从 state 中读取数据。(数组写法) ...mapState(['sum','school','subject']), //借助 mapGetters 生成计算属性,从 getters 中读取数据。(对象写法) // ...mapGetters({bigSum:'bigSum'}) //借助 mapGetters 生成计算属性,从 getters 中读取数据。(数组写法) ...mapGetters(['bigSum']) }, } </script>
store/index.js
//该文件用于创建 Vuex 中最为核心的 store import Vue from 'vue' //引入 Vuex import Vuex from 'vuex' //应用 Vuex 插件 Vue.use(Vuex) //准备 state——用于存储数据 const state = { sum:1, //当前的和 school:'尚硅谷', subject:'前端' } //准备 getters——用于将 state 中的数据进行加工 const getters = { bigSum(state){ return state.sum*10 } } //创建并暴露 store export default new Vuex.Store({ state, getters })