Vue之共享Vuex之简单入门(040)

Vue之共享Vuex之简单入门

一、项目结构
在这里插入图片描述
二、store文件下index.js

import Vue from "vue"
import Vuex from "vuex"

Vue.use(Vuex)
const actions = {
    //定义奇数再加法
    xPlusBySumOdd(context, value) {
        if (this.state.sum % 2)
            context.commit("XPlus", value)
    },
    //定义等一会儿再加法
    xPlusWait(context, value) {
        setTimeout(()=>{
            context.commit("XPlus", value)
        },500)

    },

}
const mutations = {
    //定义加法实现
    XPlus(state, value) {
        return state.sum += value;
    },
    //定义减法实现
    XSubtract(state, value) {
        return state.sum -= value;
    }
}
const state = {
    sum: 0
}
export default new Vuex.Store({
    actions,
    mutations,
    state
})

三、main.js

import Vue from 'vue'
import App from './App.vue'
import store from './store'

Vue.config.productionTip = false
new Vue({
    store,
    render: h => h(App),
}).$mount('#app')

四、组件count.vue

<template>
  <div>
    <h1>{{ $store.state.sum }}</h1>
    <select v-model.number="n">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>
    <button @click="plus">+</button>
    <button @click="subtract">-</button>
    <button @click="plusBySumOdd">和奇数再加</button>
    <button @click="plusWait">等一会儿再加</button>
  </div>
</template>

<script>
export default {
  name: "Count",
  data() {
    return {
      n: 0
    }
  },
  methods: {
    //定义加法
    plus() {
      this.$store.commit("XPlus", this.n)
    },
    //定义减法
    subtract() {
      this.$store.commit("XSubtract", this.n)
    },
    //定义和为奇数再加法
    plusBySumOdd() {
      this.$store.dispatch("xPlusBySumOdd", this.n)
    },
    //定义等等再加法
    plusWait() {
      this.$store.dispatch("xPlusWait", this.n)
    }
  }
}
</script>

五、APP代码

<template>
  <div id="app">
    <count></count>
  </div>
</template>

<script>

import Count from "./components/Count";

export default {
  name: 'App',
  components: {
    Count
  }
}
</script>

六、效果图
在这里插入图片描述
七、总结 
如果没有复杂业务逻辑或异步可以直接调用mutation中方法。

 this.$store.commit("XPlus", this.n)

反之需调用action 中的方法

 this.$store.dispatch("xPlusBySumOdd", this.n)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值