vue学习第8章(vue的购物车案例)

🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!🙏🙏🙏

文章目录

  • 1. 目录结构
  • 2. index.html
  • 3.main.js
  • 4. style.css
  • filter、map、reduce

综合前面的知识,需要通过一个小demo来串联起知识。

如图所示:

点击“+”按钮,总价增加,点击“-”按钮总价减少,点击移除,移除当列。

1. 目录结构

2. index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>综合练习</title><link rel="stylesheet" href="./css/style.css">
</head>
<body>
<div id="app"><table><thead><th>&nbsp;</th><th>书籍名称</th><th>出版日期</th><th>价格</th><th>购买数量</th><th>操作</th></thead><tbody><tr v-for="(book,index) in books"><td>{{index}}</td><td>{{book.name}}</td><td>{{book.beginDate}}</td><td>{{book.price | showPrice}}</td><td><button @click="decrement(index)" :disabled="book.count<=1">-</button>{{book.count}}<button @click="increment(index)">+</button></td><td><button @click="remove(index)">移除</button></td></tr></tbody></table><h3>总价:{{totalPrice | showPrice}}</h3>
</div>
<script src="../js/vue.js"></script>
<script src="./js/main.js"></script>
</body>
</html>

3.main.js

const app = new Vue({el: '#app',data: {books: [{name: "《算法导论》",beginDate: "2006-9",price: 85.00,count: 1},{name: "《UNIX编程艺术》",beginDate: "2006-2",price: 59.00,count: 1},{name: "《编程大全》",beginDate: "2008-10",price: 39.00,count: 1},{name: "《代码大全》",beginDate: "2006-3",price: 128.00,count: 1},]},methods: {increment(index){this.books[index].count++},decrement(index){this.books[index].count--},remove(index){this.books.splice(index,1)}},computed: {totalPrice(){return this.books.map(book => book.price*book.count).reduce((preValue,currentValue) => preValue+currentValue)}},filters: {showPrice: function(price){console.log(typeof price);let priceStr = price.toFixed(2)console.log(priceStr);return "¥" + priceStr}}
})

4. style.css

table{border: 1px;border-collapse: collapse;border-spacing: 0;
}
th,td{padding: 8px 16px;border: ipx solid #e9e9e9;text-align: left;
}
th{background-color: #f7f7f7;color: #5c6b77;font-weight: 600;
}

filter、map、reduce

// 1.filter过滤函数
const nums = [2,3,5,1,77,55,100,200]
//要求获取nums中大于50的数
//回调函数会遍历nums中每一个数,传入回调函数,在回调函数中写判断逻辑,返回true则会被数组接收,false会被拒绝
let newNums = nums.filter(function (num) {if(num > 50){return true;}return false;})//可以使用箭头函数简写
//  let newNums = nums.filter(num => num >50)console.log(newNums);
// 2.map高阶函数
// 要求将已经过滤的新数组每项乘以2
//map函数同样会遍历数组每一项,传入回调函数为参数,num是map遍历的每一项,回调函数function返回值会被添加到新数组中
let newNums2 = newNums.map(function (num) {return num * 2})//简写
//  let newNums2 = newNums.map(num => num * 2)
console.log(newNums2);
// 3.reduce高阶函数
//要求将newNums2的数组所有数累加
//reduce函数同样会遍历数组每一项,传入回调函数和‘0’为参数,0表示回调函数中preValue初始值为0,回调函数中参数preValue是每一次回调函数function返回的值,currentValue是当前值
//例如数组为[154, 110, 200, 400],则回调函数第一次返回值为0+154=154,第二次preValue为154,返回值为154+110=264,以此类推直到遍历完成
let newNum = newNums2.reduce(function (preValue,currentValue) {return preValue + currentValue},0)
//简写
// let newNum = newNums2.reduce((preValue,currentValue) => preValue + currentValue)
console.log(newNum);//三个需求综合
let n = nums.filter(num => num > 50).map(num => num * 2).reduce((preValue,currentValue) => preValue + currentValue)
console.log(n);

Hi👋,这里是瑞雨溪一个喜欢JavaScript和Vue的大学生,如果我的文章给你带来的帮助,欢迎您关注我,我会持续不断的更新更多优质文章.你的关注就是我的动力!!!🎉🎉🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/18183.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringBoot】什么是Maven,以及如何配置国内源实现自动获取jar包

前言 &#x1f31f;&#x1f31f;本期讲解关于Maven的了解和如何进行国内源的配置~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f3…

【Linux】:进程信号(详谈信号捕捉 OS 运行)

✨ 来去都是自由风&#xff0c;该相逢的人总会相逢 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;Linux—登神长阶 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞…

七、利用CSS和多媒体美化页面的习题

题目一&#xff1a; 利用CSS技术&#xff0c;结合表格和列表&#xff0c;制作并美化 “ 翡翠阁 ”页面。运行效果如下 运行效果&#xff1a; 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>翡翠阁</title>&…

动态规划 —— 子数组系列-等差数列划分

1. 等差数列划分 题目链接&#xff1a; 413. 等差数列划分 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/arithmetic-slices/description/ 2. 算法原理 状态表示&#xff1a;以某一个位置为结尾或者以某一个位置为起点 dp[i]表示&#xff1a;以i位置为…

vue使用List.reduce实现统计

需要对集合的某些元素的值进行计算时&#xff0c;可以在计算属性中使用forEach方法 1.语法&#xff1a;集合.reduce ( ( 定义阶段性累加后的结果 , 定义遍历的每一项 ) > 定义每一项求和逻辑执行后的返回结果 , 定义起始值 ) 2、简单使用场景&#xff1a;例如下面…

TensorFlow 2.0 windows11 GPU 训练环境配置

前言 在一切开始之前&#xff0c;请确保你的cmd命令行和powershell命令行可以正常打开。如果不能&#xff0c;建议重装系统。我不确定这是否会影响你最终的结果&#xff0c;毕竟windows的坑太多了。 安装顺序&#xff1a;visual studio -> cuda -> cudnn -> python…

MyISAM和InnoDB介绍及切换存储引擎方法

MyISAM 和 InnoDB 都是 MySQL 数据库管理系统中常用的存储引擎&#xff08;Storage Engine&#xff09;。存储引擎决定了数据库如何存储、读取、更新数据以及如何管理事务、锁定等操作。 1. MyISAM 存储引擎 MyISAM 是 MySQL 的默认存储引擎之一&#xff0c;尤其是在早期版本…

什么是嵌入式?

目录 一、什么是嵌入式 二、嵌入式系统的特点 &#xff08;一&#xff09;专用性与隐蔽性 &#xff08;二&#xff09;高可靠性与实时性 &#xff08;三&#xff09;资源固定与小型化 三、嵌入式系统的发展历史 &#xff08;一&#xff09;20 世纪 60 年代早期雏形 &am…

在几分钟内将数据从 Oracle 迁移到 ClickHouse

ClickHouse 是一个开源的面向列的数据库管理系统。它在实时数据处理方面的出色性能显着增强了数据分析和业务洞察力。将数据从 Oracle 迁移到 ClickHouse 可以释放数据在决策中的力量&#xff0c;这是单独使用 Oracle 无法实现的。 本教程介绍如何使用 BladePipe 将数据从 Orac…

Linux网络:HTTPS协议

Linux网络&#xff1a;HTTPS协议 加密方式对称加密非对称加密混合加密中间人攻击 证书数据签名CA认证 HTTPSSSL/TSLHTTPS 在HTTP协议中&#xff0c;所有的数据都采用明文的形式传输&#xff0c;这就会导致数据非常容易泄露&#xff0c;只要拿到HTTP报文&#xff0c;就可以窃取各…

(计算机毕设)基于springboot免税商品购物商城的设计与实现

博主可接毕设设计&#xff01;&#xff01;&#xff01; 各种毕业设计源码只要是你有的题目我这里都有源码 基于springboot免税商品购物商城的设计与实现 摘 要 Abstract 第一章 绪论 1.1 课题开发的背景 1.2 课题研究的意义 1.3 研究内容 第二章 系统开发关键技术…

计算机能力挑战赛c语言2024

先看看答题页面长啥样&#xff1a;选择题15道&#xff0c;编程题4道 选择题&#xff08;楼主个人答案&#xff09; 编程题

Java集合HashMap——针对实习面试

目录 Java集合MapHashMap的特性是什么&#xff1f;HashMap和Hashtable的区别&#xff1f;HashMap和HashSet的区别&#xff1f;HashMap和TreeMap的区别&#xff1f;说说HashMap的底层实现什么是hash冲突&#xff1f;有什么办法减少hash冲突&#xff1f;为什么HashMap的容量总是2…

数据结构:图(二)---- 最小生成树算法

接着上回的分享&#xff0c;继续分享一下图中比较重要的一类应用 那就是求最小生成树 最小生成树的定义 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去任何一条边&#xff0c;生成树 就不在连通&#xff1b;反之&#xf…

编程语言的前后端分离:可用JavaScript运行时作为后端的语言及与传统编程语言的对比 -Typescript、Nim、Moonbit

在现代软件开发中&#xff0c;编程语言的**“前后端分离”**概念鲜有提及&#xff0c;却是语言设计与实现的重要基石。这里的“前端”并非指 Web 开发中的界面部分&#xff0c;而是编程语言实现中的语法解析、词法分析等部分&#xff1b;“后端”则指生成可执行代码或中间代码的…

【蓝牙协议栈】【BLE】【BAS】精讲蓝牙电池服务

1. 蓝牙电池服务(Bluetooth Battery Service)概念 蓝牙电池服务是蓝牙设备与其他设备通信时用于报告其剩余电池电量的标准服务。它让用户能够随时了解蓝牙设备(如无线耳机、智能手表、蓝牙鼠标/键盘等)的电池状态,从而方便地管理这些设备的续航与电源使用。 BAS通常用于在…

dnaMethyAge包学习笔记

1.introduction 许多对甲基化年龄进行计算的文章都是采用网站实现计算的&#xff0c;能够实现对甲基化年龄的计算的R包相对比较少&#xff0c;其中应用最广的是dnaMethyAge包。作者本想寻找能够计算Grimage和Grimage2的R包&#xff0c;奈何没有寻找到&#xff0c;因此只能记录一…

详解八大排序(四)------(归并排序)

文章目录 前言&#xff1a;1 递归版本&#xff08;MergeSort&#xff09;1.1 核心思路1.2 实现代码 2 非递归版本&#xff08;MergeSortNonR&#xff09;2.1 核心思路2.2 实现代码 3.完整代码 前言&#xff1a; 归并排序的核心思路是把数组里面的数两两分成一组&#xff0c;组内…

商城小程序的流程渠道拓展

传统印象里&#xff0c;小程序的开发制作似乎很难&#xff0c;尤其是商城类型且功能体系完善的&#xff0c;事实也确实如此&#xff0c;没有较高的技术和成本投入或团队各个流程的专业人员合作&#xff0c;很难开发出来成品&#xff0c;或者质量较低。 当然对于大公司来说&…

小程序-基于java+SpringBoot+Vue的超市购物系统设计与实现

项目运行 1.运行环境&#xff1a;最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境&#xff1a;IDEA&#xff0c;Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境&#xff1a;Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…