Vuex mapState mapGetters mapMutations mapActions
Vuex mapState mapGetters mapMutations mapActions
在computed或methods中使用,在模板语法中可简化state调用声明
<template>
<div>
<select v-model="unit">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<button @click="increment(unit)">加</button>
<button @click="decrement(unit)">减</button>
<button @click="increOdd(unit)">奇数加</button>
<button @click="decreAsync(unit)">异步减</button>
<!-- <h1>{{ $store.state.count }}</h1> -->
<!-- <h1>{{ $store.getters.bigCount }}</h1> -->
<h1>{{count}}</h1>
<h1>{{ bigCount }}</h1>
<h1>{{ prop1 }}</h1>
<h1>{{ prop2 }}</h1>
</div>
</template>
<script>
import { mapState, mapGetters, mapMutations, mapActions } from "vuex";
export default {
data: () => ({ unit: 1 }),
computed:{
// 对象写法
// ...mapState({prop1:'prop1',p2:'prop2'}),
// ...mapGetters({bigCount:'bigCount'})
// 数组写法
...mapState(['count','prop1','prop2']),
...mapGetters(['bigCount'])
},
methods: {
...mapMutations({increment:'incre',decrement:'decre'}),
...mapActions({increOdd:'INCRE_ODD',decreAsync:'DECRE_ASYNC'})
}
};
</script>
store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
// 注册Vuex插件
Vue.use(Vuex)
export default new Vuex.Store({
// 修改数据的动作
actions: {
INCRE_ODD(context, payload) {
context.state.count % 2 !== 0 && context.dispatch('INCRE_ASYNC', payload)
},
INCRE_ASYNC(context, payload) {
setTimeout(() => {
context.commit('incre', payload)
}, 500);
},
DECRE_ASYNC(context, payload) {
setTimeout(() => {
context.commit('decre', payload)
}, 500);
}
},
// 操作数据的行为
mutations: {
incre(state, payload) {
state.count += payload
},
decre(state, payload) {
state.count -= payload
}
},
// 初始化数据
state: {
count: 0,
prop1:'prop1 value',
prop2:'prop2 value'
},
getters:{
bigCount(state){
return state.count * 10
}
}
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2019-02-13 联系人与客户多对一配置&联系人列表&分页查询联系人
2019-02-13 CRM:异步加载下拉列表,三个列表出现同样的下拉框