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

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <