可以使用Vue的v-model和计算属性来实现表格中数量的加减功能。
首先,在Vue实例中定义一个数组items
,数组中包含多个对象,每个对象代表表格中的一行数据,包含一个quantity
属性来表示数量。例如:
new Vue({el: '#app',data: {items: [{ id: 1, name: 'item 1', quantity: 0 },{ id: 2, name: 'item 2', quantity: 0 },{ id: 3, name: 'item 3', quantity: 0 },]},methods: {increment(item) {item.quantity++;},decrement(item) {if (item.quantity > 0) {item.quantity--;}}},computed: {totalQuantity() {return this.items.reduce((sum, item) => sum + item.quantity, 0);}}
});
然后,在模板中通过v-for
指令遍历items
数组,并使用v-model
指令将数量绑定到输入框中。同时,使用两个按钮调用increment
和decrement
方法来增加或减少数量。最后使用计算属性totalQuantity
来计算所有商品的总数量。
<div id="app"><table><tr v-for="item in items" :key="item.id"><td>{{ item.name }}</td><td><button @click="decrement(item)">-</button><input type="number" v-model="item.quantity"><button @click="increment(item)">+</button></td></tr></table><p>Total quantity: {{ totalQuantity }}</p>
</div>
这样,当点击加号按钮时,对应商品的数量会增加,当点击减号按钮时,对应商品的数量会减少。总数量会根据计算属性的逻辑自动更新。
参考文档:
- v-model:https://vuejs.org/v2/guide/forms.html#Basic-Usage
- 计算属性:https://vuejs.org/v2/guide/computed.html