Vuex状态管理集

Vuex是什么?
父子组件中共用的数据和操作单独提取出来,统一的进行管理,这样整个代码结构就显的非常的清晰。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
Vue简单计数原本写法

<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<div id="app">
	<p>计数{{count}}</p>
	<button @click="add">+</button>
	<button @click="reduce">-</button>
</div>
<script>
	var vm = new Vue({
		el: '#app',
		data: {
			count:0
		},
		methods: {
			add:function () {
				this.count++
			},
			reduce:function () {
				this.count--
			}
		}
	});
</script>

Vuex修改简单计数器【写法一】

<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vuex/2.4.0/vuex.js"></script>
<div id="app">
	<p>计数 {{count}}</p>
	<button @click="add">+</button>
	<button @click="reduce">-</button>
</div>
<script>
	var store = new Vuex.Store({
		state:{
			count:0
		},
		// 唯一一个可以更改状态的地方
		mutations:{
			addState:function(state){
				state.count++;
			},
			reduceState:function(state){
				state.count--;
			}
		}
	})
	var vm = new Vue({
		el: '#app',
		store,
		computed: {
			count:function(){
				return this.$store.state.count
			}
		},
		methods: {
			add:function () {
				store.commit("addState")
			},
			reduce:function () {
				store.commit("reduceState")
			}
		}
	});
</script>

在这里插入图片描述
Vuex修改简单计数器【写法二】

<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
	<script src="https://cdn.bootcdn.net/ajax/libs/vuex/2.4.0/vuex.js"></script>
	<div id="app">
		<p>{{count}}</p>
		<my-addbtn></my-addbtn>
		<my-removebtn></my-removebtn>
	</div>
	<script>
		var store = new Vuex.Store({
			state:{
				count:0
			},
			// 唯一一个可以更改状态的地方
			mutations:{
				add:function(state){
					state.count++;
				},
				remove:function(state){
					state.count--;
				}
			}
		})
		var vm = new Vue({
			el: '#app',
			computed: {
				count:function(){
					return store.state.count;
				}
			},
			components:{
				'my-addbtn':{
					template:'<button @click="setCount">+</button>',
					methods: {
						setCount:function () {
							store.commit("add")
						},
					}
				},
				'my-removebtn':{
					template:'<button @click="setCount">-</button>',
					methods: {
						setCount:function () {
							store.commit("remove")
						},
					}
				}
			},
		});
	</script>

在这里插入图片描述
把共享的数据提取出来,除了共享数据以外呢,对操作共享数据的方法也可进行提取,把他们行成一个整体,从原来分布的操作,
给他提取到一个整体当中,调用也是比较容易的,通过computed计算属性的方式
在这里插入图片描述
方法调用 通过commit提交的方法进行触发,只要一点就会触发这个方法
在这里插入图片描述
以上就是Vuex状态管理的操作方式和操作流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@阿猫阿狗~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值