vuex 精简demo解析
Posted whyaza
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vuex 精简demo解析相关的知识,希望对你有一定的参考价值。
1.store/index.js 文件
import Vue from 'vue'
import Vuex from 'vuex'
//使用vuex
Vue.use(Vuex);
//一个store , Vuex.store的 实例
const store = new Vuex.Store(
state:
count : 1
,
getters: // Getter相当于vue中的computed计算属性
getStateCount: function(state)
return state.count + 1;
,
mutations:
addition(state)
state.count = state.count + 1;
,
reduction(state)
state.count = state.count - 1;
,
actions: //注册actions,类似vue里面的methods
//通过这个修改state里面的值
// 可以直接用mutations修改,但是官方建议使用actions去调用mutations去修改
addition(context)
context.commit("addition");
,
reduction(context)
context.commit("reduction");
)
export default store
main.js
import store from './store/index'
new Vue(
el: '#app',
router,
store,
components: App ,
template: '<App/>'
)
App.vue
下面是vuex:this.$store.state.count 获得的数据:
<h2> this.$store.state.count </h2>
下面是vuex:this.$store.getters.getStateCount获得的数据:
<h2> this.$store.getters.getStateCount </h2>
<button @click="addS">+</button>
<button @click="reduceS">-</button>
export default
methods:
addS()
//this.$store.commit("addition");
this.$store.dispatch("addition");
,
reduceS()
//this.$store.commit('reduction');
this.$store.dispatch("reduction");
;
总结:
vuex 功能和总线bus插件类似.对全局状态(数据)进行管理
- 使用dispatch调用actions中的方法,actions中的方法使用commit 调用mutations中的方法。
在mutations中进行实际数据的修改。 - getters: Getter相当于vue中的computed计算属性 state : 里面装所有的状态(数据)
以上是关于vuex 精简demo解析的主要内容,如果未能解决你的问题,请参考以下文章
Vuex内容解析和vue cli项目中使用状态管理模式Vuex