首页 > 其他分享 >VUEX mapState 和 mapGetters的使用

VUEX mapState 和 mapGetters的使用

时间:2023-02-26 10:00:44浏览次数:40  
标签:mapGetters dispatch 写法 mapState nbr VUEX bigSum store

 

  

mapState:

首先要在使用sore文件的文件引入:

import {mapState} from 'vuex';

在js;红色的是用到的 mapState可以自动生成 计算属性

VUEX mapState 和 mapGetters的使用_自动生成

 

 

 

<script>
import {mapState,mapGetters} from 'vuex';

export default{
data(){
return{
n:1,
}
},
computed:{
        //第一种写法 从Strate读取数据(对象写法)
...mapState({he:'nbr',xuexiao:'school',name:'myname'}),
       // 第二种写法 从State读取数据(数组写法)
        ...mapState(['nbr','school','myname']),

 bigSum(){

return this.$store.getters.bigSum
}
},
mounted(){
      //如果是数组写法下面就不用写
const x= mapState({he:'nbr',xuexiao:'school',name:'myname'})
},
methods:{
add(){
// 调用add方法
this.$store.dispatch('add',this.n)
},
subtract(){
this.$store.dispatch('subtract',this.n)
},
odd(){
this.$store.dispatch('odd',this.n)
},
item(){
this.$store.dispatch('item',this.n)
}
},
}
</script>

html;红色的是用到的 

<template>
<div id="app">
<h1>当前总数为:{{he}}</h1>
<h2>放大十倍总数为:{{bigSum}}</h2>
<h3>我在{{xuexiao}}我是{{name}}</h3>
<select v-model.number="n">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button @click="add">+</button>
<button @click="subtract">-</button>
<button @click="odd">为奇数再加</button>
<button @click="item">等一等再加</button>
<!-- <router-view/> -->
</div>
</template>

store文件里的state

state: {
nbr:0,//当前的和
school:'京海学校',
myname:'张三'
},

 

 mapGetters:  

bigSum(){

return this.$store.getters.bigSum
}

把上面这个替换为:

// 数组写法, 从getters里读取对象
...mapGetters(['bigSum'])

 



标签:mapGetters,dispatch,写法,mapState,nbr,VUEX,bigSum,store
From: https://blog.51cto.com/u_15687135/6086023

相关文章