Vuejs02作业作业:淘宝版购物车实现作业要求本地data中定义假数据,用来模拟数据加载。使用Vue指令完成页面数据渲染。使用计算属性用来监听商品数量变换,用来计算对应商品总价格用代码怎么实现
时间: 2024-03-03 08:50:11 浏览: 57
购物车作业.vue
好的,以下是一个简单的实现,你可以参考一下:
HTML代码:
```
<div id="app">
<div v-for="(item, index) in items" :key="index">
<img :src="item.img" alt="">
<p>{{ item.name }}</p>
<p>{{ item.price }}</p>
<input type="number" v-model="item.quantity" @change="updatePrice" min="1">
<p>{{ item.totalPrice }}</p>
</div>
<p>Total price: {{ totalPrice }}</p>
</div>
```
Vue实例代码:
```
new Vue({
el: '#app',
data: {
items: [
{ name: 'Product 1', img: 'image1.jpg', price: 10, quantity: 1, totalPrice: 10 },
{ name: 'Product 2', img: 'image2.jpg', price: 20, quantity: 1, totalPrice: 20 },
{ name: 'Product 3', img: 'image3.jpg', price: 30, quantity: 1, totalPrice: 30 }
]
},
methods: {
updatePrice: function() {
for (var i = 0; i < this.items.length; i++) {
this.items[i].totalPrice = this.items[i].quantity * this.items[i].price;
}
}
},
computed: {
totalPrice: function() {
var total = 0;
for (var i = 0; i < this.items.length; i++) {
total += this.items[i].totalPrice;
}
return total;
}
}
})
```
上面的代码中,我们先在data中定义了一个假数据数组items,每个元素包含商品名称、图片、单价、数量和总价。然后使用Vue指令v-for来循环渲染每个商品的信息。
在input标签中,我们使用v-model指令来双向绑定商品数量。同时,我们还使用了一个@change事件来监听数量变化,并调用updatePrice方法来更新对应商品的总价。
最后,我们使用了一个计算属性totalPrice来计算所有商品的总价,这个计算属性会在商品数量变化时自动更新。
阅读全文