*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"])
},