vuex-Vue状态管理
偷个懒,写的不是很详细。推荐地址
1.安装
npm install vuex -save
2.在项目根目录下的新建
store>index.js
文件
import Vue from 'vue'
import Vuex from 'vuex'
//挂载Vuex
Vue.use(Vuex)
//创建对象
const store = new Vuex.store({
state:{
//存放的键值对就是所要管理的状态存放状态
num:0
},
mutations:{
// state成员操作
SET_NUM: (state, num) => {
state.num = num
},
},
actions:{
//Action 类似于 mutation,不同在于:
//Action 提交的是 mutation,而不是直接变更状态。
//Action 可以包含任意异步操作。
//简单的理解就是 一般在这里掉接口获取数据,然后通过mutation改变state的状态
getNum({commit},num){
commit('SET_NAME',1)
}
},
getters:{
//加工state成员给外界(可以认为是store的计算属性,当他的依赖值发生变化才会被重新计算。)
doneNum: (state,getters) => {
return state.num++
}
},
modules:{
//模块化状态管理 (局部状态管理)
}
})
export default store
使用
//mutations
store.commit('SET_NUM',2)
//actions 通过 store.dispatch 方法触发
store.dispatch('getNum',2)
//getters 通过计算属性computed使用
computed: {
num () {
return this.$store.getters.doneNum
}
}