Vue购物车案例(全选,反选,加入,删除,加减,总价,数量)

本文通过Vue.js展示了如何创建一个购物车功能,包括商品的全选、反选、添加、删除、数量增减以及总价计算。首先,展示了购物车的最终效果,接着详细解释了相关代码实现,并提供了用于该功能的数据结构。
摘要由CSDN通过智能技术生成

1.购物车效果图

2.代码展示 

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<style type="text/css">
		body{
			font-size: 16px;
		}
		table {
			width: 1200px;
		}
		ul li{
			list-style: none;
		}
		table th {
			width: 100px;
		}
		
		table td {
			width: 200px;
			text-align: center;
		}
		
		.m {
			width: 20px;
		}
		.shang{
			width: 30%;
			float: left;
			text-align: center;
		}
	</style>

	<body>
		<div id="app">
			<div id="div">
				<h1>商品</h1>
				<div class="shang"  v-for="item in list">
				<ul>
					<li>{
  {item.name}}</li>
					<li><img v-bind:src="item.imgsrc" wi
  • 10
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
好的,这是一个简单的购物车例子: ```html <template> <div> <table> <thead> <tr> <th><input type="checkbox" v-model="selectAll" @change="toggleSelectAll"/></th> <th>商品名称</th> <th>单价</th> <th>数量</th> <th>小计</th> </tr> </thead> <tbody> <tr v-for="(item, index) in items" :key="index"> <td><input type="checkbox" v-model="item.selected"/></td> <td>{{ item.name }}</td> <td>{{ item.price }}</td> <td> <button @click="decreaseQuantity(item)" :disabled="item.quantity === 1">-</button> <span>{{ item.quantity }}</span> <button @click="increaseQuantity(item)">+</button> </td> <td>{{ item.price * item.quantity }}</td> </tr> </tbody> <tfoot> <tr> <td><button @click="selectAll = !selectAll">{{ selectAll ? '取消全选' : '全选' }}</button></td> <td colspan="3">总价:</td> <td>{{ totalPrice }}</td> </tr> </tfoot> </table> </div> </template> <script> export default { data() { return { items: [ { name: '商品1', price: 10, quantity: 1, selected: false }, { name: '商品2', price: 20, quantity: 2, selected: false }, { name: '商品3', price: 30, quantity: 3, selected: false }, ], selectAll: false, }; }, computed: { totalPrice() { return this.items .filter(item => item.selected) .reduce((total, item) => total + item.price * item.quantity, 0); }, }, methods: { toggleSelectAll() { if (this.selectAll) { this.items.forEach(item => item.selected = true); } else { this.items.forEach(item => item.selected = false); } }, increaseQuantity(item) { item.quantity += 1; }, decreaseQuantity(item) { item.quantity -= 1; }, }, }; </script> ``` 在这个例子中,我们使用 `v-model` 来绑定复选框的状态和每个商品的选择状态。我们还使用 `computed` 属性来计算购物车中所有已选择商品的总价。最后,我们使用 `methods` 中的函数来增加或减少商品的数量,并使用 `v-bind` 来禁用减少数量按钮(当商品数量为1时)。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值