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í)教程,請(qǐng)大家點(diǎn)擊專題vue.js組件學(xué)習(xí)教程、Vue.js前端組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用imba.io框架得到比 vue 快50倍的性能基準(zhǔn)
imba 是一種新的編程語言,可以編譯為高性能的 JavaScript??梢灾苯佑糜?Web 編程(服務(wù)端與客戶端)開發(fā)。這篇文章主要介紹了使用imba.io框架,得到比 vue 快50倍的性能基準(zhǔn),需要的朋友可以參考下2019-06-06vue3父子通信ref,toRef,toRefs使用實(shí)例詳解
這篇文章主要介紹了vue3父子通信ref,toRef,toRefs使用實(shí)例詳解,分別介紹了ref是什么、toRef是什么及toRefs是什么和最佳使用方式,結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-10-10Vue.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