vue实现计数
Vue 实现计数功能
在 Vue 中实现计数功能可以通过多种方式完成,以下是几种常见的方法:
使用 Vue 2 选项式 API
<template>
<div>
<p>当前计数: {{ count }}</p>
<button @click="increment">增加</button>
<button @click="decrement">减少</button>
<button @click="reset">重置</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
}
},
methods: {
increment() {
this.count++
},
decrement() {
this.count--
},
reset() {
this.count = 0
}
}
}
</script>
使用 Vue 3 组合式 API
<template>
<div>
<p>当前计数: {{ count }}</p>
<button @click="increment">增加</button>
<button @click="decrement">减少</button>
<button @click="reset">重置</button>
</div>
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
const count = ref(0)
const increment = () => {
count.value++
}
const decrement = () => {
count.value--
}
const reset = () => {
count.value = 0
}
return {
count,
increment,
decrement,
reset
}
}
}
</script>
使用 Vuex 状态管理
对于更复杂的应用,可以使用 Vuex 来管理计数状态:

// 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++
},
DECREMENT(state) {
state.count--
},
RESET(state) {
state.count = 0
}
},
actions: {
increment({ commit }) {
commit('INCREMENT')
},
decrement({ commit }) {
commit('DECREMENT')
},
reset({ commit }) {
commit('RESET')
}
}
})
// 组件中使用
<template>
<div>
<p>当前计数: {{ $store.state.count }}</p>
<button @click="increment">增加</button>
<button @click="decrement">减少</button>
<button @click="reset">重置</button>
</div>
</template>
<script>
export default {
methods: {
increment() {
this.$store.dispatch('increment')
},
decrement() {
this.$store.dispatch('decrement')
},
reset() {
this.$store.dispatch('reset')
}
}
}
</script>
使用 Pinia (Vue 3 推荐的状态管理)
// stores/counter.js
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', {
state: () => ({
count: 0
}),
actions: {
increment() {
this.count++
},
decrement() {
this.count--
},
reset() {
this.count = 0
}
}
})
// 组件中使用
<template>
<div>
<p>当前计数: {{ counter.count }}</p>
<button @click="counter.increment()">增加</button>
<button @click="counter.decrement()">减少</button>
<button @click="counter.reset()">重置</button>
</div>
</template>
<script>
import { useCounterStore } from '@/stores/counter'
export default {
setup() {
const counter = useCounterStore()
return {
counter
}
}
}
</script>
这些方法涵盖了从简单到复杂的计数实现方式,可以根据项目需求选择合适的方案。






