VUE学习 小练习

实现效果图
在这里插入图片描述
代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet"  href="style.css" />
    <!--<script src="js/vue.js"></script>
    	<script src="js/vue-router.js"></script>-->
    	<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
</head>
<body>

<!--vue对象创建后,删除v-cloak属性-->
<div id='app'>
	<div v-if="books.length==0">
		购物车为空
		
	</div>
	<div v-else>
		<table>
		
		<thead>
			<tr>
				<th></th>
			<th>书籍</th>
			<th>出版日期</th>
			<th>价格</th>
			<th>购买数量</th>
			<th>操作</th>
				
			</tr>
			
		</thead>
		
		<tbody>
			<tr v-for='(value,index) in books'>
				<td >{{value.id}}</td>
				<td >{{value.name}}</td>
				<td >{{value.date}}</td>
				<!--<td >{{value.price.toFixed(2)}}</td>-->
				<td >{{value.price | showPrice}}</td>	<!--使用过滤器改变金额格式-->
				<td >
					<button @click="decrement(index)" v-bind:disabled="value.count <=1">-</button> <!--按钮失效-->
					{{value.count}}
					<button @click="increment(index)">+</button>
				</td>
				<td >
					<button @click='remove(index)'>移除</button>
				</td>
			</tr>
			
		</tbody>
		
	</table>
		<h2 >总价格为{{totalPrice | showPrice}}</h2>
	</div>
	

	
</div>

		<script src="main.js"></script>
</body>
</html>
table{
	border:1px solid #e9e9e9;
	border-collapse: collapse;
	border-spacing: 0;
}
th,td{
	padding:8px 16px;
	border:1px solid #E9E9E9;
	text-align: left;
}
th{
	background-color: #f7f7f7;
	color:#5c6b77;
	font-weight: 600;
}


const app = new Vue({
	el:'#app',
	data:{
		books:[
			{
				id:1,
				name:'小黄书',
				date:'2020-09',
				price:80.00,
				count:2
			},
			{
				id:2,
				name:'博人传',
				date:'2020-09',
				price:51.00,
				count:2
			},
			{
				id:3,
				name:'王书',
				date:'2020-09',
				price:80.00,
				count:2
			},
			{
				id:4,
				name:'牛逼书',
				date:'2020-09',
				price:80.00,
				count:2
			}
		]
	},
	computed:{
		totalPrice(){
			let total = 0;
			for(let i = 0; i < this.books.length; i++){
				total += this.books[i].price * this.books[i].count;
			}
			return total;
		}
		
	},
	methods:{
		increment(index){
			console.log('hello'+index);
			this.books[index].count++;
		},
		decrement(index){
			if(this.books[index].count>=2){
				console.log('world'+index);
			this.books[index].count--;
			}
		},
		remove(index){
			this.books.splice(index,1);/*移除*/
		}
	},
	filters:{
		showPrice(price){
			return '¥'+price.toFixed(2);/*保留两位小数*/
		}
		
	}
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ranx3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值