欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實現(xiàn)書籍購物車功能

 更新時間:2021年10月27日 10:58:55   作者:今天會下雨嗎  
這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)書籍購物車功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)書籍購物車功能的具體代碼,供大家參考,具體內(nèi)容如下

效果圖

點擊增加、減少購買數(shù)量和移除總價格會變化

代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>書籍購物車</title>
    <style>
        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-color: #f7f7f7;
            color: #5c6b77;
            font-weight: 600;
        }
    </style>
</head>
<body>
    <div id="app" v-cloak>
        <div v-if="books.length">
            <table>
                <thead>
                    <tr>
                        <th></th>
                        <th>書籍名稱</th>
                        <th>出版日期</th>
                        <th>價格</th>
                        <th>購買數(shù)量</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <tr v-for="(item, index) in books">
                        <td>{{index+1}}</td>
                        <td>{{item.name}}</td>
                        <td>{{item.date}}</td>
                        <td>{{item.price | showPrice}}</td>
                        <td>
                            <!-- disabled 為true時按鈕禁用 -->
                            <button @click="reduce(index)" v-bind:disabled="item.count <= 1">-</button>
                            {{item.count}}
                            <button @click="increase(index)">+</button>
                        </td>
                        <td><button @click="remove(index)">移除</button></td>
                    </tr>
                </tbody>
            </table>
            <h2>總價格:{{totalPrice | showPrice}}</h2>
        </div>
        <h2 v-else>購物車為空</h2>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        const app = new Vue({
            el: "#app",
            data:{
                books:[
                    {
                        name: '《算法導(dǎo)論》',
                        date: '2021-8-1',
                        price: 85.00,
                        count: 1
                    },
                    {
                        name: '《UNIX編程藝術(shù)》',
                        date: '2021-8-2',
                        price: 69.00,
                        count: 1
                    },
                    {
                        name: '《編程珠璣》',
                        date: '2021-8-3',
                        price: 35.00,
                        count: 1
                    },
                    {
                        name: '《DOM編程藝術(shù)》',
                        date: '2021-8-4',
                        price: 75.00,
                        count: 1
                    },
                    {
                        name: '《nodejs深入淺出》',
                        date: '2021-8-5',
                        price: 105.00,
                        count: 1
                    },
                ],
                
            },
            methods:{
                reduce(index){
                    this.books[index].count--;
                },
                increase(index){
                    this.books[index].count++;
                },
                remove(index){
                    this.books.splice(index,1);

                },
            },
            computed:{
                // 寫在計算屬性里的方法可以直接當(dāng)屬性使用
                totalPrice(){
     //let totalPrice = 0;

                    // 1. 普通的for循環(huán)
                    // for (let i = 0; i < this.books.length; i++) {
                    //     totalPrice += this.books[i].count * this.books[i].price;
                    // }

                    // 2. 步驟稍簡單的普通for循環(huán)
                    // for (let i in this.books) {
                    //     totalPrice += this.books[i].count * this.books[i].price;
                    // }

                    // 3. for(let item of this.books)
                    //for(let item of this.books){
                        //totalPrice += item.count * item.price;
                    //}
                    //return totalPrice;

     // 4. 高階函數(shù)寫法 reduce
     // 直接返回結(jié)果 不需要定義變量,也不需要遍歷
     return this.books.reduce(function(pre, book){
                        return pre + book.price * book.count;
                    },0);
            },
            // 過濾器
            filters:{
                showPrice(price){
                    return "¥" + price.toFixed(2);
                }
            }
        })
    </script>
</body>
</html>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在vue-cli中組件通信的方法

    在vue-cli中組件通信的方法

    本篇文章主要介紹了在vue-cli中組件通信的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • vue3??mark.js?實現(xiàn)文字標(biāo)注功能(案例代碼)

    vue3??mark.js?實現(xiàn)文字標(biāo)注功能(案例代碼)

    這篇文章主要介紹了vue3??mark.js?實現(xiàn)文字標(biāo)注功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 詳解如何在vue項目中使用eslint+prettier格式化代碼

    詳解如何在vue項目中使用eslint+prettier格式化代碼

    在開發(fā)中我們需要一種能夠統(tǒng)一團(tuán)隊代碼風(fēng)格的工具,作為強(qiáng)制性的規(guī)范,統(tǒng)一整個項目的代碼風(fēng)格,這篇文章主要介紹了詳解如何在vue項目中使用eslint+prettier格式化代碼,需要的朋友可以參考下
    2018-11-11
  • 解決VUEX兼容IE上的報錯問題

    解決VUEX兼容IE上的報錯問題

    下面小編就為大家分享一篇解決VUEX兼容IE上的報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue3?使用setup語法糖實現(xiàn)分類管理功能

    vue3?使用setup語法糖實現(xiàn)分類管理功能

    這篇文章主要介紹了vue3?使用setup語法糖實現(xiàn)分類管理,本次模塊使用 vue3+element-plus 實現(xiàn)一個新聞?wù)镜暮笈_分類管理模塊,其中新增、編輯采用對話框方式公用一個表單,需要的朋友可以參考下
    2022-08-08
  • 淺析Proxy如何實現(xiàn)Vue響應(yīng)式

    淺析Proxy如何實現(xiàn)Vue響應(yīng)式

    這篇文章主要是來和大家探討一下,Vue的響應(yīng)式系統(tǒng)僅僅是一個Proxy嗎,本文將圍繞此問題探索一下Proxy是如何實現(xiàn)Vue響應(yīng)式的,感興趣的小伙伴可以了解一下
    2023-08-08
  • vue組件是如何解析及渲染的?

    vue組件是如何解析及渲染的?

    這篇文章主要介紹了vue組件是如何解析及渲染的?,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2021-01-01
  • vue2實現(xiàn)無感刷新token的方式詳解

    vue2實現(xiàn)無感刷新token的方式詳解

    在Web應(yīng)用中,用戶需要通過認(rèn)證和授權(quán)才能訪問受保護(hù)的資源,為了實現(xiàn)認(rèn)證和授權(quán)功能,通常需要使用Token來標(biāo)識用戶身份并驗證其權(quán)限,本文給大家介紹了vue2實現(xiàn)無感刷新token的方式,需要的朋友可以參考下
    2024-02-02
  • Vue3+TS實現(xiàn)語音播放組件的示例代碼

    Vue3+TS實現(xiàn)語音播放組件的示例代碼

    這篇文章主要介紹了如何利用Vue+TS實現(xiàn)一個簡易的語音播放組件,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Vue有一定的幫助,需要的可以參考一下
    2022-03-03
  • vsCode中vue文件無法提示html標(biāo)簽的操作方法

    vsCode中vue文件無法提示html標(biāo)簽的操作方法

    在vsCode中書寫Vue頁面時無法提示,那真是很郁悶的事情,下面這篇文章主要給大家介紹了關(guān)于vsCode中vue文件無法提示html標(biāo)簽的操作方法,需要的朋友可以參考下
    2023-03-03

最新評論