vuex用于全项目的一些公共状态管理,可以管理一些公共的变量,比如说登陆态啊,订单号啊啥的
使用方式如同路由:
1.先引入vuex的库
2.vue使用改库,并单独定义一个vuex文件如下
3.其中state可以看作是数据仓库,你需要访问的数据都在这里定义
4.mutations中定义了你需要改变数据的方法,想要改变数据就必须
使用mutations中定义的方法,通过this.$store.commit('fn')的方式提交
5.getter简单的可以理解为vuex的计算属性,可以通过属性的方式去访问,
比如如下就可以通过this.$store.getters.todoCount去获取到state中的计算属性
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
messages:'heloo message',
count:0,
id:'#44433'
},
mutations: {
changeFullMessage(state){
state.count = '123'
},
},
getters:{
todoCount(state){
return state.count+=2
},
todorounder(state){
return state.id+=5
}
}
})
其中有两个参数mapState和mapGetters
当我们在页面中需要使用vuex中的变量时,我们一般会在计算属性中
引入这个store,然后通过this.$store.state.count去定义一个
新的计算属性供当前组建使用,而mapState其实就相当于帮你简化了
写法上的流程,可以通过
computed:{
...mapState(['id','messages','count']),
...mapGetters(['todoCount','todorounder'])
}
这种方式 把属性跟当前页面要用的值同名,当前组件就可以直接用了