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");
        }
    }
  };

总结:

  1. vuex 功能和总线bus插件类似.对全局状态(数据)进行管理
  2. 使用dispatch调用actions中的方法,actions中的方法使用commit 调用mutations中的方法。
    在mutations中进行实际数据的修改。
  3. getters: Getter相当于vue中的computed计算属性 state : 里面装所有的状态(数据)

转载于:https://www.cnblogs.com/whyaza/p/11557949.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值