VUE购物车商品的添加、删除和计算总金额功能

这篇具有很好参考价值的文章主要介绍了VUE购物车商品的添加、删除和计算总金额功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果

VUE购物车商品的添加、删除和计算总金额功能,# Vue3,# Vue2,Vue,vue.js文章来源地址https://www.toymoban.com/news/detail-821960.html

代码

<template>
  <div id="box">
    <!--全选功能-->
    <input type="checkbox" @change="handleChange" v-model="isAllChecked" />
    <!--绑定事件,不选用click,使用change每次check值改变会触发双向绑定布尔值-->
    <ul>
      <li v-for="data in datalist">
        <input type="checkbox" v-model="checkgroup" :value="data" @change="handleLiChange" />
        <!--
                    v-model绑定数组,且要有value值
                    value使用数组绑定
                    :value="data.number||data.price||data.id||data.number*data.price"
                -->
        {{ data }}
        <!--设置添加删除按钮-->
        <button @click="handleDelClick(data)">del</button>
        <!--用户体验限制不小于0 所以不能使用data.number-- -->
        {{ data.number}}<!--当前数量-->
        <button @click="data.number++">add</button>
        <!--data.number++自增1点击事件,简单逻辑可直接使用代码-->
      </li>
    </ul>

    {{ checkgroup }}
    <p>总金额计算:{{ getSum() }}</p>
    <!--函数表达式,函数要有返回值-->
  </div>
</template>
<script lang='ts'>
import { reactive, toRefs, onBeforeMount, onMounted } from "vue";
import { useRouter, useRoute } from "vue-router"; //引入路由
export default {
  name: "",
  setup() {
    let router = useRouter(),
      route = useRoute();
    const data = reactive({
      checkgroup: [],
      isAllChecked: false,
      datalist: [
        {
          name: "商品1",
          price: 10,
          number: 1,
          id: "1",
        },
        {
          name: "商品2",
          price: 20,
          number: 2,
          id: "2",
        },
        {
          name: "商品3",
          price: 30,
          number: 3,
          id: "3",
        },
      ],
      getSum() {
        // 函数计算中的状态改变后, 函数会自动执行一遍
        var sum = 0;
        for (var i in this.checkgroup) {
          sum += this.checkgroup[i].number * this.checkgroup[i].price;
        }
        return sum;
      },

      handleChange() {
        //全选判断
        console.log("改变了", this.isAllChecked);
        if (this.isAllChecked) {
          this.checkgroup = this.datalist; //全选的话为原数组
        } else {
          this.checkgroup = []; //为假即全不选,即赋值空数组
        }
      },

      handleLiChange() {
        //判断是不是都勾选
        console.log("handleLiChange-判断是不是都勾选");
        if (this.checkgroup.length === this.datalist.length) {
          //判断勾选数组与原始数组是否全等
          this.isAllChecked = true;
        } else {
          this.isAllChecked = false;
        }
      },

      handleDelClick(data) {
        //数量减少函数
        // console.log(data)
        data.number--;
        if (data.number === 0) {
          data.number = 1; //减到0的情况下永远赋值为1
        }
      },
    });
    onBeforeMount(() => { });
    onMounted(() => { });
    const refData = toRefs(data);
    return {
      ...refData,
    };
  },
};
</script>
<style scoped></style>

到了这里,关于VUE购物车商品的添加、删除和计算总金额功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序实现商品加入购物车案例

    思考: 购物车中的数据保存在哪里?用哪种数据结构进行保存? 小程序中可能有多个页面需要对购物车中的数据进行操作,因此我们想到把数据存到全局中。可以使用 wx.setStorageSync() 储存,用 wx.getStorageSync() 进行获取,以数组格式方便对数据进行操作。 一、商品加入购物车

    2024年02月10日
    浏览(52)
  • 《苍穹外卖》知识梳理6-缓存商品,购物车功能

    一.缓存菜品   可以使用redis进行缓存;另外,在实现缓存套餐时可以使用spring cache提高开发效率;   通过缓存数据,降低访问数据库的次数; 使用的缓存逻辑: 1.每个分类下保存一份缓存数据;就是一对key-value(dish_1表示属于分类1的菜品列表) 2.数据库中的菜品有变更

    2024年02月19日
    浏览(35)
  • ECSHOP购物车页面显示商品简单描述的实现方法

    最近看到有朋友有这方面的需求,就整理了一下,写出来供有同样需求的朋友备用,这里说的商品简单描述,不是商品的详细信息,而是后台编辑商品时在“其他信息”标签栏填写的那个“商品简单描述”,即goods_brief字段,修改前请注意备份相关的系统文件。 修改lib_order

    2023年04月16日
    浏览(48)
  • 微信小程序商城开发-商品详情页跳转购物车

    微信小程序商城开发中商品详情页中购物车页面的跳转(仅限于tabbar页面的跳转)   点击商品详情页中的购物车图标跳转不到tabbar及导航栏中的购物车页面,总是报错 微信小程序开发需要跳转tabbar页面的话,有固定的跳转方式,不是开发中所有的跳转方式都适用于tabbar跳转

    2024年02月17日
    浏览(60)
  • itheima苍穹外卖项目学习笔记--Day7:缓存商品 / 购物车

    通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: 每个分类下的菜品保存一份缓存数据 数据库中菜品数据有变更时清理缓存数据 修改用户端接口 DishController 的 list 方法,加入缓存处理逻辑 修改管理端接口 DishController 的相关方法,加入清理缓存的逻辑,需要

    2024年02月16日
    浏览(48)
  • Vue入门三(表单控制|购物车案例|v-model进阶|与后端交互|计算属性|监听属性|Vue生命周期)

    v-model双向数据绑定,还可以对输入框数据进行一定的限定。 v-modle 释义 lazy 等待input框的数据绑定时区焦点之后再变化 number 以数字开头并只保留后面的数字,不保留字母;字母开头都保留 trim 去除首位的空格 与后端交互统一使用json编码格式 与后端交互涉及到跨域问题后,

    2024年01月21日
    浏览(52)
  • flask 与小程序 购物车删除和编辑库存功能

    编辑  :   数量加减   价格汇总  数据清空 知识点1: view class=\\\"jian-btn\\\" catchtap=\\\"jianBtnTap\\\" data-index=\\\"{{index}}\\\" 是一个微信小程序中的一个视图组件,具有以下特点: class=\\\"jian-btn\\\" :该组件的样式类名为 jian-btn ,可以通过CSS样式表对其进行样式设置。 catchtap=\\\"jianBtnTap\\\" :该组件绑

    2024年01月22日
    浏览(45)
  • Vue项目(购物车)

    目录 购物车效果展示: 购物车代码: 购物车效果展示: 此项目添加、修改、删除数据的地方都写了浏览器都会把它存储起来 下次运行项目时会把浏览器数据拿出来并在页面展示 Video_20230816145047 购物车代码: 复制完代码,需改下script中引入的vue文件地址; 可直接使用

    2024年02月12日
    浏览(42)
  • vue购物车案例(源码)

    全部效果的代码: 最终实现的效果  购物车功能实现 (1)实现全选,选中购物车中所有内容 (2)点击增加和减少按钮,每个商品的数量发生变化,对应的金额会变化 (3)动态计算总价,商品总数 (4)点击操作中的删除,或者下面的删除所选商品按钮可以删除商品 (5)

    2024年02月08日
    浏览(64)
  • 【Vue实战】使用vue实现购物车案例

    1. 实现步骤 【备注】这里的接口地址目前(2022年6月)还是可以用的哦~ 2. 实现 2.1 代码结构 使用的样式是Boostrap,需要npm i bootstrap,然后在main.js中引入bootstrap。 2.2 Header头部的代码 2.3 Goods商品组件代码 代码: 2.4 Footer组件代码 2.5 Counter组件代码 2.6 App.vue根组件代码 2.7 event

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包