vuex的简单使用

Vuex状态管理实战
本文详细介绍了如何在Vue项目中安装并配置Vuex状态管理库,通过实例演示了共享数据的定义、状态获取、异步操作及状态更新的方法。同时,展示了如何在组件中使用Vuex提供的API进行数据读取和操作。

第一步:安装

npm install vuex --save-dev

第二步:引用

全局引入:main.js

import data from "./store/data";
new Vue({
  el: '#app',
  router,
  store:data,
  components: { App },
  template: '<App/>'
})

第三步:写共享数据

 import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);

let state = {
	count:1,
	arr:[{
		    id: 11,
		    name: '鱼香肉丝',
		    price: 12,
		  }, {
		    id: 22,
		    name: '宫保鸡丁',
		    price: 14
		  }, {
		    id: 34,
		    name: '土豆丝',
		    price: 10
		  }, {
		    id: 47,
		    name: '米饭',
		    price: 2
		  },{
		    id: 49,
		    name: '蚂蚁上树',
		    price: 13
		  },
		  {
		    id: 50,
		    name: '腊肉炒蒜薹',
		    price: 15
		  }]
}

let getters = {
	getCount(state){
		return state.count;
	},
	isEvenOrOdd(state){
		if(state.count%2==0){
			return '偶数'
		}else{
			return '奇数'
		}
	}
}

let actions = {
	add({commit}){
		commit('doAdd');
	},
	sub({commit}){
		commit('doSub');
	},
}

let mutations = {
	doAdd(state){
		state.count++;
	},
	doSub(state){
		state.count--;
	}
}

let store = new Vuex.Store({
	state,getters,actions,mutations
})
export default store;

第四步:使用共享数据

<template>
	<div>
		<button @click="sub">减少</button>
		<span>{{count}}</span>
		<button @click="add">增加</button>	
		<p>{{isEvenOrOdd}}</p>
	</div>
</template>

<script>
	import {mapActions,mapGetters,mapMutations,mapState} from "vuex";
	export default{
		name:"broadcast",
		// computed:mapState([
		// 	'count','arr'
		// ]),
		// computed:mapGetters([
		// 	'getCount'
		// ]),
		computed:{
			 ...mapGetters({
				count:'getCount',
				isEvenOrOdd:'isEvenOrOdd'
			})
		},
		methods:{
			 ...mapActions({
				add:'add',
				sub:'sub'
			})
		}
	}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值