Vue 开发技巧(五)

使用状态管理:状态管理可以帮助维护应用的状态,提高代码的可维护性

// store.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    increment ({ commit }) {
      commit('increment')
    }
  }
})

// App.vue
<template>
  <div>
    {{ count }}
    <button @click="increment">+</button>
  </div>
</template>

<script>
import { mapActions } from 'vuex'

export default {
  computed: {
    count () {
      return this.$store.state.count
    }
  },
  methods: {
    ...mapActions(['increment'])
  }
}
</script>

store.js 文件是 Vuex 的 store。

state 对象存储了应用的状态,在这个示例中,只有一个 count 字段。
mutations 对象定义了对状态的修改方法,在这个例子中只有一个 increment 方法,用于将 count 加 1。

actions 对象定义了对状态的异步修改方法,在这个例子中只有一个 increment 方法,它调用了 commit 函数来触发一个 increment 的 mutation。

App.vue 文件是应用的主组件。

计算属性 count 返回了 store 中的 count 状态。

mapActions 函数从 vuex 中导入,它将 store 中的 actions 映射到组件的 methods 中,这样可以在组件内部直接调用这些 actions。

组件的模板部分显示了 count 和一个 + 按钮,按钮点击时触发 increment action。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值