Vue實現購物車全選及價格計算

2021-09-29 06:06:08 字數 1859 閱讀 7267

《vuejs實戰》這本書中5.5是一道實戰題:利用計算屬性、指令等知識開發購物車。

練習1:在當前示例基礎上擴充套件商品列表,新增一項是否選中該商品的功能,總價變為只計算選中商品的總價,同時提供乙個全選的按鈕。

練習2:將商品列表list改為乙個二維陣列來實現商品的分類,比如可分為「電子產品」 「生活用品」 和「果蔬」,同類商品聚合在一起。提示,你可能會用到兩次v-for。

1、購物車 

編號商品名稱

商品單價

購買數量

操作 }}}-}

+移除

總價:¥}

購物車為空

data: ,,],

checkboxmodel: ,

checked: false

},computed:

}return total.tofixed(2);}},

methods: ,

handleadd: function (index) ,

handleremove: function (index) ,

//全選的實現通過checkboxmodel的狀態

checkedall: function () else );

_this.checked = true;}},

//單選的實現依靠的是checked通過click的切換實現

onlychecked: function (index) else

},// 從遍歷單個,若全部選中則全選按鈕選中

checkpick: function ()

}if (checkedsum == me.list.length) else

},//計算**

checkmodel: function ()

} else

}// 利用checkboxmodel的繫結的狀態來分別給每個物品確認checked的狀態,避免與onlychecked的衝突}}

});

2、二維陣列

型別商品名稱

編號商品單價

購買數量

操作 }}

}}- }+移除

總價:¥}

購物車為空

data: , , ],

[, , ],

[, , ]

],checkboxmodel: ,

checked: false

},computed: }}

return total.tostring().replace(/\b(?=(\d)+$)/g, ',');}},

methods: ,

handleadd: function (index, inindex) ,

handleremove: function (index, inindex) ,

allpick: function () else );

}_this.checked = true;}},

pickone: function (index, inindex) else

},checkpick: function ()

}alength += _this.list[i].length

}if (sumpic == alength) else

},num: function (index) }},

checkmodel: function () }}

} else }}

}},

created()

});

vue中實現商品購物車全選反選

專案需求 實現乙個購物車 全選框實現對商家和商品的全選 商家全選框實現對當前商家所有商品的全選 取消其中乙個商品則取消對應商家全選和全選框 選中乙個商家下的所有商品則勾選對應商家的全選框,不勾選全選框 選中所有商品則勾選所有商家全選框和全選框 我的思路 1 通過對資料的簡單操作可實現更深層次的全選操...

Vue之購物車計算總價

購物車 panel body checkbox checkbox v model checkall 全選 list group list group item v for item in list key item.id checkbox checkbox v model item.checked ...

AngularJS 購物車全選 取消全選功能實現

剛學習angularjs,於是練習寫了乙個類似於購物車的全選 取消全選的功能,主要實現的功能有 1 勾選全選checkbox,列表資料全部被勾選,取消同理,用ng model實現雙向繫結 3 全部勾選後,只要取消乙個全選的check狀態就為false 4 實現購物車的小計和總金額計算,僅計算被勾選的...