vue学习笔记(1)

这篇博客主要介绍了使用Vue.js构建一个简单的购物车应用的过程,包括HTML、CSS和JavaScript的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个购物车应用

结果展示
在这里插入图片描述
html源码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8"/>
		<title>Vue 实例</title>
		<link rel="stylesheet" type="text/css" href="style.css" />
	</head>
	<body>
		<div id="app" v-cloak>
			<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 src="index.js"></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: left;
}
th{
	background: #f7f7f7;
	color: #5c6b77;
	font-weight: 600;
	white-space: nowrap;
}

js代码

var app = new Vue({
	el:'#app',
	data:{
		list:[
			{
				id:1,
				name:'iPhone7',
				price:8888,
				count:1
			},
			{
				id:2,
				name:'Mac',
				price:18888,
				count:1
			},
			{
				id:3,
				name:'iPad',
				price:5888,
				count: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,',');
		}
	},
	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){
			if(this.list[index].count === 1) return;
			this.list.splice(index ,1);
		}
	}
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值