vue购物车

html+vue.js:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>购物车示例</title>
	<link rel="stylesheet" type="text/css" href="style.css">
		
</head>
<body>
	<div id="app" >
		<template v-if="list.length">
			<table>
				<thead>
					<tr>
						<th></th>
						<th>商品名称</th>
						<th>商品单价</th>
						<th>商品数量</th>
						<th>操作</th>
					</tr>
				</thead>
				<tbody>
					<tr v-for="(item, index) in list">
						<td>{{index+1}}</td>
						<td>{{item.name}}</td>
						<td>{{item.price}}</td>
						<td>
							<button @click="handleReduce(index)" :disabled="item.count===1">-	</button>{{item.count}}
							<button @click="handleAdd(index)">+</button>
						</td>
						<td><button @click="handleRemove(index)">移除</button>
						</td>
					</tr>
					
				</tbody>
			</table>
			<div>总价:{{totalPrice}}</div>
		</template>
		<div v-else>购物车为空</div>

	</div>
	<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
	<script >
		var app = new Vue({
			el: "#app",
			data:{
				list:[
					{
						id:1,
						name:'iphone7',
						price:6188,
						count:1
					},
					{
						id:2,
						name:'iPad Pro',
						price:5888,
						count:1
					},
					{
						id:3,
						name:'mac',
						price:21488,
						count:1
					}
				]

		},
		methods:{
			handleReduce:function(index){
				if(this.list[index].count===1) return;
				this.list[index].count--;
			},
			handleAdd:function(index){
				this.list[index].count++;
			},
			handleRemove:function(index){
				this.list.splice(index,1);
			}

		},
		computed:{
			totalPrice:function(){
				var total = 0;
				for(var i=0;i<this.list.length;i++){
					var item = this.list[i];
					total+=item.price*item.count;
				}
					return total.toString().replace(/\B(?=(\d{3})+$)/g,',');
					
			}

		}
	});
	</script>
	
</body>
</html>

 css:

[v-cloak]{
	display: none;
}
table{
	border:1px solid #e9e9e9;
	border-collapse:collapse;
	border-spacing:0;
	empty-cells: show;
}
th,td{
	padding: 8px 16px;
	border: 1px solid #e9e9e9;
	text-align: center;

}
th{
	background: #f7f7f7;
	color:#5c6b77;
	font-weight: 600;
	white-space: nowrap;
}

 最后结果:

posted @ 2018-06-03 18:00  向日葵的微笑~  阅读(171)  评论(0编辑  收藏  举报