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

本文主要是介绍VUE购物车商品的添加、删除和计算总金额功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果

在这里插入图片描述

代码

<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购物车商品的添加、删除和计算总金额功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/593492

相关文章

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动