千家信息网

vue怎么实现商品购物车全选反选

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇"vue怎么实现商品购物车全选反选"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"
千家信息网最后更新 2026年11月02日vue怎么实现商品购物车全选反选

这篇"vue怎么实现商品购物车全选反选"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"vue怎么实现商品购物车全选反选"文章吧。

项目需求:

实现一个购物车
全选框实现对商家和商品的全选
商家全选框实现对当前商家所有商品的全选
取消其中一个商品则取消对应商家全选和全选框
选中一个商家下的所有商品则勾选对应商家的全选框,不勾选全选框
选中所有商品则勾选所有商家全选框和全选框

我的思路:

1、通过对数据的简单操作可实现更深层次的全选操作
2、vue.$set(object, key, value)给对象添加属性可以更新视图
3、通过es6的every判断数组中是否每个元素都满足条件,都满足返回true,有一个不满足则返回false

template:

全选
{{val.seller}}
  • {{item.name}}

scritpt层

var app = new Vue({    el: "#app",    data: {        checkedAll: false, //控制是否全选        data: [{            seller: "商家1",            goodsList: [{                name: '商品1'            }]        }, {            seller: "商家2",            goodsList: [{                name: '商品2'            }, {                name: '商品3'            }]        }] //数据    },    mounted() {        this.data.forEach(item => {            this.$set(item, "checked", false) //Vue 解决不能检测到对象属性的添加或删除                // item.checked = false; //如果为真实数据直接设置的对象改变值不会更新视图            if (item.goodsList) {                item.goodsList.forEach((citem) => {                    this.$set(citem, "checked", false)                        // citem.checked = false;                })            }        });    },    methods: {        //全选        checkAll() {            this.data.forEach(item => {                item.checked = this.checkedAll;                if (item.goodsList) {                    item.goodsList.forEach(citem => {                        citem.checked = this.checkedAll;                    })                }            })        },        //商家全选        _checkAll(val, k) {            val.goodsList.forEach(item => {                item.checked = val.checked;            });            if (this.data.every(item => item.checked)) {                this.checkedAll = true;            } else {                this.checkedAll = false;            }        },        //商品选择框        handleCheck(item, index) {            var check = []; //保存中间层是否被选中的布尔值            this.data.forEach((items, index) => {                if (items.goodsList) {                    var bool = items.goodsList.every(citem => citem.checked);                    if (bool) {                        items.checked = true;                    } else {                        items.checked = false;                    }                    check.push(bool);                }            })            if (check.indexOf(false) == -1) {                this.checkedAll = true;            } else {                this.checkedAll = false;            }        },    }})

效果如下

以上就是关于"vue怎么实现商品购物车全选反选"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

商品 商家 内容 购物车 购物 对象 数据 属性 文章 知识 篇文章 视图 更新 更深 中间层 价值 元素 大部分 就是 层次 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡 湖北九亚互联网络科技有限公司 江苏根荣互联网科技 为想互联网科技怎么样 远拓互联网科技 互联网金融科技平台 奇士达互联网科技 丰台科技园 互联网 互联网前沿科技 四川狮子座互联网科技 中盈科技互联网信息有限公司 剑昆互联网络科技有限公司临桂 上海宁丞科技互联网 中国航天科技大学国际工业互联网 洛阳共同富裕互联网科技有限公司 济南有互联网科技公司吗 互联网领先科技活动 安徽零酒互联网科技有限公司 互联网领先科技成果宣传视频 科技发展第三阶段互联网时代 互联网科技公司简介 云信互联网科技有限公司 互联网科技有限公司经营范围 互联网科技ppt模板 互联网女皇 腾讯科技 华夏互联网科技业 半导体是互联网高科技吗 下一代互联网重大应用科技园 济南小医互联网科技有限公司招聘 唐山双旺合互联网科技产业园
0