本文实例为大家分享了Vue实现小购物车功能的具体代码,供大家参考,具体内容如下
本人还在初级学习阶段,有很多不足之处,希望能指出错误,一起进步
HTML代码块
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
< body >
< div id = "app" >
< div v-if = "books.length" >
< table >
< thead >
< tr >
< th ></ th >
< th >书籍名称</ th >
< th >出版日期</ th >
< th >价格</ th >
< th >购买数量</ th >
< th >操作</ th >
</ tr >
</ thead >
< tbody >
< tr v-for = "(itme,index) in books" >
< td >{{itme.id}}</ td >
< td >{{itme.name}}</ td >
< td >{{itme.date}}</ td >
<!-- showPrice过滤器 -->
< td >{{itme.price | showPrice}}</ td >
< td >
<!-- 动态绑定disabled,当数量小于1时 禁止点击按钮-->
< button @ click = "decrement(index)" :disabled = "itme.count <= 1" >-</ button >
{{itme.count}}
< button @ click = "increment(index)" >+</ button >
</ td >
< td >< button @ click = "Handle(index)" >移除</ button ></ td >
</ tr >
</ tbody >
</ table >
< h2 >总价格:{{totalPrice | showPrice}}</ h2 >
</ div >
< h2 v-else>购物车为空</ h2 >
</ div >
</ body >
|
css代码块
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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 : #f7f7f7 ;
color : #5c6b77 ;
font-weight : 600 ;
}
|
Vue.js代码块
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
const app = new Vue({
el: '#app' ,
data:{
books:[
{
id:1,
name: '《算法议论》' ,
date: '2001-1' ,
price:85.00,
count:1
},
{
id:2,
name: '《编程珠玑》' ,
date: '2002-1' ,
price:65.00,
count:1
},
{
id:3,
name: '《Unix编程艺术》' ,
date: '2000-1' ,
price:59.00,
count:1
},
{
id:4,
name: '《代码大全》' ,
date: '2005-1' ,
price:135.00,
count:1
},
]
},
/**
* 使用普通方法
*/
methods:{
//获取小数点的方法
// getFinalPrice(price){
// return '¥' + price.toFixed(2);
// }
//点击事件
increment(index){
this .books[index].count++;
},
decrement(index){
this .books[index].count--;
},
Handle(index){
this .books.splice(index,1);
}
},
computed:{
totalPrice(){
let totalPrice = 0;
for (let i = 0; i < this .books.length; i++){
totalPrice += this .books[i].price * this .books[i].count;
}
return totalPrice;
}
},
/**
* 使用过滤器获取小数点
*/
filters:{
showPrice(price){
return '¥' + price.toFixed(2);
}
}
})
|
效果如图:
还有很多不足之处,希望大家能指出。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_45938852/article/details/111411434