Vuex使用 2

*state访问状态对象

访问状态对象就是SPA(单页应用程序)中的共享值。状态对象赋值给内部对象,也就是把stroe.js中的值,赋值给模板里data中的值

通过computed的计算属性直接赋值
computed属性可以在输出前,对data中的值进行改变,利用这种特性把store.js中的state值赋值给我们模板中的data值。

	computed:{
	    count(){
	        return this.$store.state.count;
	    }
	}
	注意的是return this.$store.state.count这一句,一定要写this,
	要不会找不到$store的。这种写法很好理解,但是写起来是比较麻烦的

通过mapState的对象来赋值

首先要用import引入mapState。

import {mapState} from 'vuex';
然后还在computed计算属性里写如下代码:

computed:mapState({
        count:state=>state.count
 })
这里使用ES6的箭头函数来给count赋值。

通过mapState的数组来赋值

 computed:mapState(["count"])
这个算是最简单的写法了,在实际项目开发当中也经常这样使用。






*Mutations修改状态

getters从表面是获得的意思,可以把他看作在获取数据之前进行的一种再编辑,相当于对数据的一个过滤和加工。你可以把它看作store.js的计算属性。

getters基本用法:

比如我们现在要对store.js文件中的count进行一个计算属性的操作,就是在它输出前,给它加上100.
首先要在store.js里用const声明我们的getters属性。

const getters = {
    count:function(state){
        return state.count +=100;
    }
}
/*写好了gettters之后,还需要在Vuex.Store()里引入,
由于之前我们已经引入了state盒mutations,所以引入里有三个引入属性。*/
export default new Vuex.Store({
    state,mutations,getters
})

在store.js里的配置算是完成了,需要到模板页对computed进行配置。在vue 的构造器里边只能有一个computed属性,如果写多个,只有最后一个computed属性可用,所以要对上节课写的computed属性进行一个改造。改造时使用ES6中的展开运算符”…”。

/*首先用import引入我们的`mapGetters*/
import { mapState,mapMutations,mapGetters } from 'vuex';
computed:{
    ...mapState(["count"]),
	...mapGetters(["count"])
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值