import Vue from 'vue'
import Vuex from 'vuex'
import createLogger from 'vuex/dist/logger'
Vue.use(Vuex)
// 设置只有在开发环境的时候才打印日志
const debug = process.env.NODE_ENV !== 'production'
const state = {
barIndex: '1'
}
const getters = {
barIndex: state => state.barIndex
}
const mutations = {
CHANGE_INDEX (state, value) {
state.barIndex = value
}
}
const actions = {
doSomething({commit},data){
commit('CHANGE_INDEX',data)
},
}
const store = new Vuex.Store({
state,
getters,
mutations,
actions,
strict: debug,
plugins: debug ? [createLogger()] : []
})
export default store
复制代码
初始化store,指定vuex不一样状态对应的文件vue
import Vue from "vue";
import Vuex from "vuex";
import * as actions from "./actions";
import * as getters from "./getters";
import state from "./state";
import mutations from "./mutations";
import createLogger from "vuex/dist/logger"; // 打印日志
Vue.use(Vuex);
// 设置只有在开发环境的时候才打印日志
const debug = process.env.NODE_ENV !== "production";
export default new Vuex.Store({
actions,
getters,
state,
mutations,
strict: debug,
plugins: debug ? [createLogger()] : []
});
复制代码
官网解释 vuex
const state = {
status: "",
};
export default state;
复制代码
官网解释 bash
能够理解为更方便的调用state里面的属性异步
export const status = state => state.status;
复制代码
通常使用辅助函数mapGetters来获取state里面定义的数据,能够经过this.status直接使用模块化
computed: {
// 使用对象展开运算符将 getter 混入 computed 对象中
...mapGetters([
'status',
// ...
])
}
复制代码
官网解释函数
export const SET_STATUS = "SET_STATUS";
复制代码
官网解释ui
import * as types from "./mutation-types";
// payload就是经过mapMutations函数传过来的数据number1
const mutations = {
[types.SET_STATUS](state, payload) {
state.status = payload;
}
};
export default mutations;
复制代码
通常使用辅助函数mapMutations来使用this
methods: {
// 引入
...mapMutations({
set_status: 'SET_STATUS'
}),
// 使用
this.set_status('number1')
}
复制代码
官网解释spa
import * as types from "./mutation-types";
export const actionsSetdataInfo = ({ commit }, data) => {
// 这里能够调用接口,当数据返回后,再经过commit把数据同步到mutations里面
commit(types.SET_STATUS, data);
};
复制代码