Vuex 第2节 state访问状态对象

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'])   //数组里面的值是字符串

这算是最简单的写法,在实际项目开发当中也经常这样使用。

原文地址:https://www.cnblogs.com/Elva3zora/p/12714509.html