国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Vue實現購物車場景下的應用

2024-05-06 15:24:05
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Vue在購物車場景下的應用,供大家參考,具體內容如下

購物車場景需求:

1. 商品、店鋪、購物車的選擇

2. 商品刪除

關鍵代碼

測試數據

var _list = [{ checked: false, goods: [{  name: "商品1",  price: 23,  checked: false }]}, { checked: false, goods: [{  name: "商品2",  price: 20,  checked: false }, {  name: "商品3",  price: 30,  checked: false }]}];

店鋪對象組成購物車數組 _list
商品對象組成店鋪對象下的商品數組 goods
每個商品和店鋪都有自己的 checked 字段

一. 選擇商品

選擇商品 選擇店鋪下的所有商品 選擇購物車里的所有商品

數據綁定

<body class="app"> <input type="checkbox" v-if="list.length" v-model="checkedAll"> <div v-for="(shopI, shop) in list" class="shop">  <input type="checkbox" v-model="shop.checked">  <div v-for="(goodI, good) in shop.goods" class="good">   <input type="checkbox" v-model="good.checked">   <span v-html="good.name"></span>   <span v-html="good.age"></span>  </div> </div></body>
var vue = new Vue({ el: '.app', data: {  list: _list }});

監聽購物車全選

computed: { checkedAll: function() {  return this.checkedShopsCount == this.list.length; }, checkedShopsCount: function() {  var i = 0;  this.list.forEach(function(item) {   if (item.checked == true) i++;  });  return i; }}

當店鋪選擇數(checkedShopsCount)等于店鋪數(list.length)時,購物車全選(checkedAll)為 true
商品 & 店鋪選擇事件

<input type="checkbox" v-if="list.length" v-model="checkedAll" @change="setAllChecked($event)"><div v-for="(shopI, shop) in list"> <input type="checkbox" v-model="shop.checked" @change="setGoodChecked(shop)"> <div v-for="(goodI, good) in shop.goods">  <input type="checkbox" v-model="good.checked" @change="setShopChecked(good, shop)">  <span v-html="good.name"></span>  <span v-html="good.age"></span> </div></div>
methods: { setAllChecked: function(e) {  this.list.forEach(function(shop) {   shop.checked = e.target.checked;   shop.goods.forEach(function(good) {    good.checked = e.target.checked;   });  }); }, setGoodChecked: function(shop) {  shop.goods.forEach(function(good) {   good.checked = shop.checked;  }); }, setShopChecked: function(good, shop) {  if (!good.checked) {   shop.checked = false;  } else {   // 檢查店鋪是否存在 checked 為 false 的商品   shop.checked = !shop.goods.find(function(good) {    return !good.checked;   });  } }}

選擇購物車時執行 setAllChecked,此時選擇所有商品和店鋪

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 皮山县| 新乐市| 广灵县| 册亨县| 安陆市| 青冈县| 和政县| 连州市| 灵宝市| 柞水县| 陈巴尔虎旗| 黄浦区| 江津市| 宁国市| 乐清市| 彝良县| 仁寿县| 华安县| 元阳县| 科技| 柯坪县| 雅安市| 准格尔旗| 巨鹿县| 北海市| 峨边| 扶风县| 红桥区| 乃东县| 南城县| 松桃| 砀山县| 青海省| 盐边县| 福安市| 石泉县| 博湖县| 海口市| 九寨沟县| 中宁县| 怀远县|