国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue購物車案例(源碼)

這篇具有很好參考價值的文章主要介紹了vue購物車案例(源碼)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

全部效果的代碼:

<!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>
    <!-- 引入js -->
    <script src="../js/vue.js"></script>
    <style>
        td {
         text-align: center;
        }
    </style>
</head>
<body>
    <div id="app">
        <div class="addGood">
            商品名稱:<input type="text" v-model="gname">
            商品數(shù)量:<input type="number" v-model="gnum">
            商品狀態(tài):<select v-model="gstatus">
                <option value="true">上架</option>
                <option value="false">下架</option>
            </select>
            <button @click="addGood">增加商品</button>
        </div>
        <table border="=1px" width="800px" rules="all">
            <thead>
                <th><input type="checkbox" @click="checkAllMethod" v-model="checkAll">全選</th>
                <th>編號</th>
                <th>名稱</th>
                <th>狀態(tài)</th>
                <th>數(shù)量</th>
                <th>操作</th>
            </thead>
            <tbody>
                <tr v-for="good in goods">
                    <td><input type="checkbox" v-model="good.ischecked"></td>
                    <td>{{good.id}}</td>
                    <td>{{good.name}}</td>
                    <td>
                        <span v-if="good.status">上架狀態(tài)</span>
                        <span v-else="good.status">下架狀態(tài)</span>
                    </td>
                    <td>
                        <button @click="addNum(good.id)">+</button>
                        {{good.num}}
                        <button @click="subNum(good.id)">-</button>
                    </td>
                    <td>
                        <button @click="del(good.id)">刪除</button>
                        <button @click="goodDown(good.id)" v-if="good.status">點擊下架</button>
                        <button @click="goodUp(good.id)" v-else="good.status">點擊上架</button>
                    </td>
                </tr>
            </tbody>
        </table>
        選中的商品的總數(shù)量:{{total}}
    </div>
</body>
<script>
  var vue = new Vue({
        el: "#app",
        data: {
            goods: [
                { id: 1, name: "蘋果", status: true, num: 5, ischecked: true },
                { id: 2, name: "香蕉", status: true, num: 5, ischecked: false },
                { id: 3, name: "橘子", status: false, num: 5, ischecked: false },
                { id: 4, name: "甘蔗", status: true, num: 5, ischecked: false },
                { id: 5, name: "荔枝", status: true, num: 5, ischecked: false }
            ]
            ,
            gid: 5,
            gname: "",
            gstatus: true,
            gnum: 5,
            gisckecked: false,
            checkAll: false
        },
        methods: {
            addGood() {
                //添加商品,往goods里面加一條json數(shù)據(jù)
                var myGood = {
                    id: ++this.gid,
                    name: this.gname,
                    num: this.gnum,
                    status: this.gstatus,
                    ischecked: this.gisckecked
                }
                this.goods.push(myGood)
            },
            //全選,全不選
            checkAllMethod() {
                this.goods.forEach(element => {
                      //孩子checkbox的checked屬性值跟全選(父checked)的屬性保持一致
                    element.ischecked = !this.checkAll
                });
            },
            //添加數(shù)據(jù)
            addNum(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        element.num++
                    }
                })
            },
             //減少數(shù)量
            subNum(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        if (element.num > 0) {
                            element.num--
                        }
                    }
                })
            },
            //刪除商品
            del(id) {
                var flag = confirm("你確定要刪除嗎?");
                if (flag) {
                    this.goods.forEach((element, index) => {
                        if (element.id == id) {
                            this.goods.splice(index, 1)
                        }
                    })
                }
            },
            //商品下架
            goodDown(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        element.status = !element.status
                    }
                })
            },
            //商品上架
            goodUp(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        element.status = !element.status
                    }
                })
            }
        },
        computed: {
            //計算方法,此處的代碼會根據(jù)data中的數(shù)據(jù)自動發(fā)生(重新計算)變化
            total() {
                var sum = 0;
                this.goods.forEach(element => {
                    if (element.ischecked) {
                        sum += element.num
                    }
                })
                return sum
            },
        }
    }) 

</script>
</html>

最終實現(xiàn)的效果

vue購物車案例(源碼)

?購物車功能實現(xiàn)

(1)實現(xiàn)全選,選中購物車中所有內(nèi)容

(2)點擊增加和減少按鈕,每個商品的數(shù)量發(fā)生變化,對應(yīng)的金額會變化

(3)動態(tài)計算總價,商品總數(shù)

(4)點擊操作中的刪除,或者下面的刪除所選商品按鈕可以刪除商品

(5)可以更改商品的狀態(tài),上架或者下架,更靈活

代碼實現(xiàn)流程分析:

  1. 首先我們看這個代碼,它是沒有引入vue.js的,所以我們的第一步當然是先引入一下
  2. <script src="../js/vue.js"></script>

    這里我引用的是本地的vue.js,下面這個是官網(wǎng)的可以直接用,如果不行的話,我建議你們?nèi)ue官網(wǎng)看一下,https://cdn.staticfile.org/vue/2.2.2/vue.min.js。

  3. 可以給頁面添加好看的樣式,你們可以自行添加,我直接用表格實現(xiàn),就沒有加樣式,代碼如下,這是寫在body里面的,這里用到了一些東西

  4. 使用v-for調(diào)用data里productList列表里的數(shù)據(jù),循環(huán)創(chuàng)建元素
    將循環(huán)出來的product數(shù)據(jù)通過插值表達式{{}}展現(xiàn)在頁面上
    使用v-bind將product里的pro_img(圖片地址)綁定到img里的src上
    使用v-model將product里的pro_num(商品數(shù)量)和input進行雙向綁定,以便修改商品數(shù)量
    使用v-if,v-else來判斷狀態(tài)

  5. <div id="app">
            <div class="addGood">
                商品名稱:<input type="text" v-model="gname">
                商品數(shù)量:<input type="number" v-model="gnum">
                商品狀態(tài):<select v-model="gstatus">
                    <option value="true">上架</option>
                    <option value="false">下架</option>
                </select>
                <button @click="addGood">增加商品</button>
            </div>
            <table border="=1px" width="800px" rules="all">
                <thead>
                    <th><input type="checkbox" @click="checkAllMethod" v-model="checkAll">全選</th>
                    <th>編號</th>
                    <th>名稱</th>
                    <th>狀態(tài)</th>
                    <th>數(shù)量</th>
                    <th>操作</th>
                </thead>
                <tbody>
                    <tr v-for="good in goods">
                        <td><input type="checkbox" v-model="good.ischecked"></td>
                        <td>{{good.id}}</td>
                        <td>{{good.name}}</td>
                        <td>
                            <span v-if="good.status">上架狀態(tài)</span>
                            <span v-else="good.status">下架狀態(tài)</span>
                        </td>
                        <td>
                            <button @click="addNum(good.id)">+</button>
                            {{good.num}}
                            <button @click="subNum(good.id)">-</button>
                        </td>
                        <td>
                            <button @click="del(good.id)">刪除</button>
                            <button @click="goodDown(good.id)" v-if="good.status">點擊下架</button>
                            <button @click="goodUp(good.id)" v-else="good.status">點擊上架</button>
                        </td>
                    </tr>
                </tbody>
            </table>
            選中的商品的總數(shù)量:{{total}}
        </div>

功能實現(xiàn)

(1)給購物車初始化

  goods:[
                {id:1,name:"蘋果",status:true,num:5,ischecked:true},
                {id:2,name:"香蕉",status:true,num:5,ischecked:false},
                {id:3,name:"橘子",status:false,num:5,ischecked:false},
                {id:4,name:"甘蔗",status:true,num:5,ischecked:false},
                {id:5,name:"荔枝",status:true,num:5,ischecked:false},
            ],
            gid :5,
            gname:"",
            gstatus:true,
            gischecked:false,
            checkAll:false

(2)添加功能實現(xiàn)

 addGood(){
                //添加商品,往goods里面加一條json數(shù)據(jù)
                var myGood={
                    id:++this.gid,
                    name:this.gname,
                    num:this.gnum,
                    status:this.gstatus,
                    ischecked:this.gischecked
                }
                this.goods.push(myGood)
            },

效果演示

vue購物車案例(源碼)

?(3)全選和單選按鈕功能實現(xiàn)

 checkAllMethod(){

                this.goods.forEach(element => {
                   //孩子checkbox的checked屬性值跟全選(父checked)的屬性保持一致
                    element.ischecked=this.checkAll
                });
            },

效果展示

vue購物車案例(源碼)vue購物車案例(源碼)

?(4)添加數(shù)據(jù)

addNum(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        element.num++
                    }
                })
            },

?(5)減少數(shù)量

 //減少數(shù)量
            subNum(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        if (element.num > 0) {
                            element.num--
                        }
                    }
                })
            },

(6)刪除商品

 del(id) {
                var flag = confirm("你確定要刪除嗎?");
                if (flag) {
                    this.goods.forEach((element, index) => {
                        if (element.id == id) {
                            this.goods.splice(index, 1)
                        }
                    })
                }
            },

(7)商品上架和下架

 //商品下架
            goodDown(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        element.status = !element.status
                    }
                })
            },
            //商品上架
            goodUp(id) {
                this.goods.forEach(element => {
                    if (element.id == id) {
                        element.status = !element.status
                    }
                })
            }
        },

(8)數(shù)量計算

computed: {
            //計算方法,此處的代碼會根據(jù)data中的數(shù)據(jù)自動發(fā)生(重新計算)變化
            total() {
                var sum = 0;
                this.goods.forEach(element => {
                    if (element.ischecked) {
                        sum += element.num
                    }
                })
                return sum
            },
        }
    }) 

最后總結(jié):

這個項目對于初次使用vue的編程人員來說,可以很好的增加你對這門語言的熟練度,對后續(xù)vue的學(xué)習(xí)有很好的幫助,希望這個對小伙伴來說有用,謝謝大家。文章來源地址http://www.zghlxwxcb.cn/news/detail-478925.html

到了這里,關(guān)于vue購物車案例(源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 14-案例:購物車

    需求說明: ????????1. 渲染功能 ? ? ? ? ? ? ? ? v-if/v-else v-for :class ? ? ? ? 2. 刪除功能 ? ? ? ? ? ? ? ? 點擊傳參 filter 過濾覆蓋原數(shù)組 ? ? ? ? 3. 修改個數(shù) ? ? ? ? ? ? ? ? 點擊傳參 find 找對象 ? ? ? ? 4. 全選反選 ? ? ? ? ? ? ? ? 計算屬性 computed 完整寫法 get/

    2024年02月12日
    瀏覽(15)
  • 基于jQuery------購物車案例

    基于jQuery------購物車案例

    目錄 基于jQuery------購物車案例 案例:購物車案例模塊-增減商品數(shù)量分析 案例:購物車案例模塊-修改商品小計分析? 案例:購物車案例模塊-計算總計和總額 案例:購物車案例模塊-刪除商品模塊 ?案例:購物車案例模塊-選中商品添加背景 html ?js css? 效果? ① 核心思路:首

    2024年02月02日
    瀏覽(17)
  • [gtp]購物車案例參考

    [gtp]購物車案例參考

    react hooks,購物車案例. 在列表上點擊+或者-更新數(shù)量,調(diào)用接口更新單個價格. 點擊table的checkbox勾選后,計算總價? 對于React Hooks和購物車案例,您可以使用useState來管理列表中商品的數(shù)量和總價。當點擊\\\"+“或”-\\\"按鈕時,可以更新相應(yīng)商品的數(shù)量,并通過調(diào)用接口來更新單個商品

    2024年02月13日
    瀏覽(20)
  • 記錄-JS簡單實現(xiàn)購物車圖片局部放大預(yù)覽效果

    記錄-JS簡單實現(xiàn)購物車圖片局部放大預(yù)覽效果

    代碼不多,先看一下?HTML?里面結(jié)構(gòu)很簡單,初始化?MagnifyingGlass?對象來關(guān)聯(lián)一個?IMG?標簽來實現(xiàn)放大。 再看一下?MagnifyingGlass 上面的就是全部邏輯,實現(xiàn)方法肯定不是最優(yōu)的,但是其中可以聯(lián)想到通過像素點的操作實現(xiàn)任意效果。 可以啟動一個 node 本地服務(wù),首先見一個

    2023年04月20日
    瀏覽(32)
  • javascript+css+html購物車案例

    javascript+css+html購物車案例

    javascript代碼部分主要實現(xiàn)三部分功能? 1、商品數(shù)量增加(減少)同時小計增加(減少) 這部分主要是通過for循環(huán)給增加(減少)按鈕綁定點擊事件 1)點擊后計數(shù)器自增(自減) 2)計數(shù)器數(shù)量*對應(yīng)商品單價 賦值給對應(yīng)商品小計(涉及到數(shù)據(jù)類型轉(zhuǎn)換) parseInt(\\\'12ccc\\\' ) →

    2024年02月02日
    瀏覽(15)
  • JavaWeb(10)——前端綜合案例4(購物車示例)

    JavaWeb(10)——前端綜合案例4(購物車示例)

    ???????購物車需要展示一個已加入購物車的商品列表,包含商品名稱、商品單價、購買數(shù)量和操作 等信息,還需要實時顯示購買的總價。其中購買數(shù)量可以增加或減少,每類商品還可以從購物車中移除。最終實現(xiàn)的效果大致如圖所示。 基礎(chǔ)版 plus版? ? ? ????????先在

    2024年02月05日
    瀏覽(19)
  • 微信小程序?qū)崿F(xiàn)商品加入購物車案例

    微信小程序?qū)崿F(xiàn)商品加入購物車案例

    思考: 購物車中的數(shù)據(jù)保存在哪里?用哪種數(shù)據(jù)結(jié)構(gòu)進行保存? 小程序中可能有多個頁面需要對購物車中的數(shù)據(jù)進行操作,因此我們想到把數(shù)據(jù)存到全局中??梢允褂?wx.setStorageSync() 儲存,用 wx.getStorageSync() 進行獲取,以數(shù)組格式方便對數(shù)據(jù)進行操作。 一、商品加入購物車

    2024年02月10日
    瀏覽(19)
  • Vue項目商品購物車前端本地緩存邏輯(適用H5/ipad/PC端)——前端實現(xiàn)購物車刪除商品、購物車增減數(shù)量,清空購物車功能

    Vue項目商品購物車前端本地緩存邏輯(適用H5/ipad/PC端)——前端實現(xiàn)購物車刪除商品、購物車增減數(shù)量,清空購物車功能

    Vue3 + Vite + Ts開源后臺管理系統(tǒng)模板 基于ElementUi或AntdUI再次封裝基礎(chǔ)組件文檔 基于Element-plus再次封裝基礎(chǔ)組件文檔(vue3+ts)

    2024年02月12日
    瀏覽(31)
  • Vue項目(購物車)

    目錄 購物車效果展示: 購物車代碼: 購物車效果展示: 此項目添加、修改、刪除數(shù)據(jù)的地方都寫了瀏覽器都會把它存儲起來 下次運行項目時會把瀏覽器數(shù)據(jù)拿出來并在頁面展示 Video_20230816145047 購物車代碼: 復(fù)制完代碼,需改下script中引入的vue文件地址; 可直接使用

    2024年02月12日
    瀏覽(24)
  • 【微信小程序】-- uni-app 項目-- 購物車 -- 首頁 - 輪播圖效果(五十二)

    【微信小程序】-- uni-app 項目-- 購物車 -- 首頁 - 輪播圖效果(五十二)

    ?? 所屬專欄:【微信小程序開發(fā)教程】 ?? 作??者:我是夜闌的狗?? ?? 個人簡介:一個正在努力學(xué)技術(shù)的CV工程師,專注基礎(chǔ)和實戰(zhàn)分享 ,歡迎咨詢! ?? 歡迎大家:這里是CSDN,我總結(jié)知識的地方,喜歡的話請三連,有問題請私信 ?? ?? ?? ??大家好,又見面了,

    2023年04月18日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包