vue實(shí)現(xiàn)簡單購物車案例
本文實(shí)例為大家分享了vue實(shí)現(xiàn)簡單購物車的具體代碼,供大家參考,具體內(nèi)容如下

代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<table>
<thead>
<tr>
<th></th>
<th>書籍名稱</th>
<th>出版日期</th>
<th>價(jià)格</th>
<th>購買數(shù)量</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for='(item,index) in books' ::key="item">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.date}}</td>
<td>{{item.price*item.count | getFinalPrice}}</td>
<td>
<button @click='reduce(index)' :disabled='item.count <= 1'>-</button>
{{item.count}}
<button @click='add(index)'>+</button>
</td>
<td>
<button @click='removeBtn(index)'>移除</button>
</td>
</tr>
</tbody>
</table>
<h2 v-if='books!=""'>總價(jià)格:{{theSumOf | getFinalPrice}}</h2>
<h2 v-else>購物車為空</h2>
</div>
</body>
<script src="../js/vue.min.js"></script>
<script>
var app = new Vue({
el: '#app',
data: {
books: [
{
id: 1,
name: '計(jì)算機(jī)應(yīng)用',
date: '2006-9',
price: 85.00,
count: 1
},
{
id: 2,
name: 'java應(yīng)用',
date: '2006-9',
price: 10.00,
count: 1
},
{
id: 3,
name: '大數(shù)據(jù)',
date: '2006-9',
price: 85.00,
count: 1
},
{
id: 4,
name: 'ui設(shè)計(jì)師',
date: '2006-9',
price: 85.00,
count: 1
},
],
addAnd:0
},
methods: {
add(index) {
this.books[index].count++
},
reduce(index) {
this.books[index].count--
},
removeBtn(index) {
this.books.splice(index, 1)
}
},
components: {
},
computed: {
theSumOf: function () {
//累加計(jì)算的第一種方法
//let sum = 0
//this.books.forEach(item => {
// sum += parseInt(item.price)*parseInt(item.count)
});
//return sum
//累加計(jì)算的第二種方式
//let sum = 0
//for(let i in this.books){
//sum += this.books[i].price*this.books[i]*count
}
//return sum
//累加計(jì)算的第三種方式
//let sum = 0
//for(let item of this.books){
//sum += item.price*item.count
//}
//return sum
//累加計(jì)算的第四種方法
return this.books.reduce(function(preValue,book){
return preValue + book.price*book.count
},0)
}
},
filters: {
getFinalPrice(price) {
return '¥' + price.toFixed(2)
},
}
});
</script>
<html>
關(guān)于vue.js的學(xué)習(xí)教程,請大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程、Vue.js前端組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用imba.io框架得到比 vue 快50倍的性能基準(zhǔn)
imba 是一種新的編程語言,可以編譯為高性能的 JavaScript??梢灾苯佑糜?Web 編程(服務(wù)端與客戶端)開發(fā)。這篇文章主要介紹了使用imba.io框架,得到比 vue 快50倍的性能基準(zhǔn),需要的朋友可以參考下2019-06-06
vue3父子通信ref,toRef,toRefs使用實(shí)例詳解
這篇文章主要介紹了vue3父子通信ref,toRef,toRefs使用實(shí)例詳解,分別介紹了ref是什么、toRef是什么及toRefs是什么和最佳使用方式,結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-10-10
Vue.js手風(fēng)琴菜單組件開發(fā)實(shí)例
這篇文章主要為大家詳細(xì)介紹了Vue.js手風(fēng)琴菜單組件開發(fā)實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
一文詳細(xì)聊聊vue3的defineProps、defineEmits和defineExpose
vue3官方文檔defineProps和defineEmits都是只能在scriptsetup中使用的編譯器宏,下面這篇文章主要給大家介紹了關(guān)于vue3的defineProps、defineEmits和defineExpose的相關(guān)資料,需要的朋友可以參考下2023-02-02
結(jié)合Vue控制字符和字節(jié)的顯示個(gè)數(shù)的示例
這篇文章主要介紹了結(jié)合Vue控制字符和字節(jié)的顯示個(gè)數(shù)的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05

