最适合新手学习Vue的案例:商品添加到购物车的功能

最近学习了Vue,发现了Vue 功能的强大,在此做了一个小案例:实现商品添加到购物车的功能。
大家可以看一下演示图:
在这里插入图片描述这里使用的知识点包括:vue基本常用指令的使用、组件化、父子组件之间的通讯、数据监听watch和computed等
代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>商品添加到购物车的案例</title>
		<script src="js/vue.js"></script>
		<style type="text/css">
			table {
				border-collapse: collapse;
				width: 50%;
				height: 160px;
			}

			td {
				text-align: center;
			}
		</style>
	</head>
	<body>
		<div id="app"></div>
	</body>
	<script>
		//购物车组件
		var Chat = {
			props: ['chatarr'],
			template: `
				<div  align="center">
					<table border="1">
						<tr>
							<th colspan="4">购物车</th>
		
  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将商品添加购物车内,需要进行以下步骤: 1. 创建一个购物车组件,用于显示购物车中的商品信息和数量。 2. 创建一个商品列表组件,用于显示所有商品的列表。 3. 在商品列表组件中,为每个商品添加一个添加购物车”按钮,并为该按钮绑定一个点击事件。 4. 在点击事件中,将该商品的信息添加购物车组件中的商品列表中,并更新购物车商品的数量和总价。 5. 可以使用 Vuex 来管理购物车的状态,包括购物车商品的数量和总价等信息。 以下是一个简单的代码示例: 1. 购物车组件 ``` <template> <div> <h3>购物车</h3> <ul> <li v-for="(item, index) in cartList" :key="index"> {{ item.name }} - {{ item.price }}元 x {{ item.quantity }} </li> </ul> <p>总价:{{ totalPrice }}元</p> </div> </template> <script> export default { computed: { cartList() { return this.$store.state.cartList; }, totalPrice() { return this.$store.getters.totalPrice; }, }, }; </script> ``` 2. 商品列表组件 ``` <template> <div> <h3>商品列表</h3> <ul> <li v-for="(item, index) in productList" :key="index"> {{ item.name }} - {{ item.price }}元 <button @click="addToCart(item)">添加购物车</button> </li> </ul> </div> </template> <script> export default { data() { return { productList: [ { id: 1, name: '商品1', price: 10 }, { id: 2, name: '商品2', price: 20 }, { id: 3, name: '商品3', price: 30 }, ], }; }, methods: { addToCart(item) { this.$store.commit('addToCart', item); }, }, }; </script> ``` 3. Vuex 状态管理 ``` import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { cartList: [], }, getters: { totalPrice(state) { return state.cartList.reduce((total, item) => total + item.price * item.quantity, 0); }, }, mutations: { addToCart(state, item) { const existItem = state.cartList.find((i) => i.id === item.id); if (existItem) { existItem.quantity++; } else { state.cartList.push({ ...item, quantity: 1 }); } }, }, }); ``` 在上面的示例中,当用户点击“添加购物车”按钮时,将触发 addToCart 方法,该方法会将商品信息添加购物车列表中,并更新购物车商品的数量和总价。购物车组件会根据 Vuex 中的状态来显示购物车中的商品信息和总价。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值