Vue实战商城项目(十四)—— 合计与全选

本文介绍如何使用Vue实现购物车中的商品价格合计及全选功能,包括价格计算、选中状态同步等核心代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本章概述:购物车商品价格合计,购物车商品选中与全选。


一、购物车商品价格合计

样式与数据渲染与前面的方法大同小异,这里不再细说,我们直接讲商品价格合计这里的代码应该怎么写。

我们从cartList数组中返回item.checked为true的项,即我们选中的项,用reduce函数将选中的数全部加起来,还要注意商品的价格乘于对应的数量才能得到正确的结果,结果保留两位小数

          //合计
        totalprice(){
          return this.$store.state.cartList.filter(item=>{
            return item.checked
          }).reduce((preValue,item) =>{
            return preValue + item.price *item.count
          },0).toFixed(2)
        }

这里返回选中商品的长度

//总数
        calulate(){
          return this.$store.state.cartList.filter(item => item.checked).length
        },

二、购物车商品选中与全选

1.判断是否全部选中

代码如下(示例):

        isSelectAll(){
          //如果长度等于0 则返回false
          if(this.$store.state.cartList.length === 0 ){ return false}

          //调用数据的find方法,只要数组中有一个的checked为false 通过取反 find就直接返回true isSelectAll就返回false
          return !this.$store.state.cartList.find(item => !item.checked)
        }

2.全选按钮对应的点击事件

代码如下(示例):

        // 将isSelectAll的结果传入checkAll函数中,只要有一个没选中,则让全部选中,如果全部选中,则让全部为不选中
        checkAll(isSelectAll){

           this.$store.state.cartList.forEach(item => item.checked = !isSelectAll)
           
        }

总结

Vue商城项目的重难点基本就是这些,还有一些小细节的东西没有全面展示,还有一些相对基础的知识点也没有展示,如果需要更详细的讲解还请回到首篇文章中点击视频链接学习。后续可能还会更新一些关于项目优化的一些文章,再后续的计划是更新有关ES6语法的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值