Vuex 第2节 state访问状态对象
第2节 state访问状态对象
在第1节我们已经写了一个 const state ,这个就是我们说的访问状态对象,它就是我们SPA(单页应用程序)中的共享值。今天我们主要学习状态对象赋值给内部对象,也就是把stroe.js中的值,赋值给我们模板里data中的值。例如:将{{$store.state.count}}
这样的形式写成以前的那种形式:{{count}}
。
有三种赋值方式。
1. 通过compute的计算属性直接赋值
computed属性可以在输出前,对data中的值进行改变,我们就利用这种特性把store.js中的state值赋值给我们模板中的data值。
export default {
data(){
return{
msg:'Hello Vuex'
}
},
computed:{
count(){
return this.$store.state.count; //这里一定要加this,否则找不到$store
}
},
store
}
那么我们在Count.vue页面中的{{count}}就能显示出count值,和之前{{$store.state.count}}完全一模一样,且同时变化。
2. 通过mapState的对象来赋值
我们首先要用import引入mapState。(同样在Count.vue引入store的下面写)
import {mapState} from 'vuex';
然后还在computed计算属性里写如下代码:
computed:mapState({
count:state=>state.count //这里用ES6的箭头函数来给count传值
}),
可以达到相同的传值效果。
3. 通过mapState的数组来赋值
只需将上面computed的地方改一改:
computed:mapState(['count']) //数组里面的值是字符串
这算是最简单的写法,在实际项目开发当中也经常这样使用。