vuex的使用例子
store.js文件
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const state = {
count: 1
}
const mutations = {
add(state, value) {
state.count += value;
},
reduce(state) {
state.count--;
},
}
const getters = {
count: function(state) {
return state.count += 100;
}
}
const actions = {
addAction(context) {
context.commit('add', 10);
},
reduceAction({commit}) {
commit('reduce');
}
}
export default new Vuex.Store({
state,
mutations,
getters,
actions
})
vue页面
- 数据:{{$store.state.count}} <==> {{count}}
- 方法调用:$store.commit('add', 10) <==> add(10)
import store from '@/vuex/store';
import { mapState, mapMutations, mapGetters, mapActions } from 'vuex';
export default {
computed: {
...mapState(['count']),
...mapGetters(['count'])
},
methods: {
...mapMutations(['add', 'reduce']),
...mapActions(['addAction', 'reduceAction'])
},
store
}