案例效果:

html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./style.css">
</head>
<body><div id="app"></div><template id="my-app"><template v-if="books.length > 0"><table><thead><th>序号</th><th>书籍名称</th><th>出版日期</th><th>价格</th><th>购买数量</th><th>操作</th></thead><tbody><tr v-for="(book, index) in books"><td>{{index + 1}}</td><td>{{book.name}}</td><td>{{book.date}}</td><td>{{formatPrice(book.price)}}</td><td><button :disabled="book.count <= 1" @click="decrement(index)">-</button><span class="counter">{{book.count}}</span><button @click="increment(index)">+</button></td><td><button @click="removeBook(index)">移除</button></td></tr></tbody></table><h2>总价格: {{formatPrice(totalPrice)}}</h2></template><template v-else><h2>购物车为空~</h2></template></template><script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.33/vue.global.js"></script><script src="./index.js"></script></body>
</html>

index.js

Vue.createApp({template: "#my-app",data() {return {books: [{id: 1,name: '《算法导论》',date: '2006-9',price: 85.00,count: 1},{id: 2,name: '《UNIX编程艺术》',date: '2006-2',price: 59.00,count: 1},{id: 3,name: '《编程珠玑》',date: '2008-10',price: 39.00,count: 1},{id: 4,name: '《代码大全》',date: '2006-3',price: 128.00,count: 1},]}},computed: {// vue2: filter/map/reducetotalPrice() {let finalPrice = 0;for (let book of this.books) {finalPrice += book.count * book.price;}return finalPrice;},// Vue3不支持过滤器了, 推荐两种做法: 使用计算属性/使用全局的方法// filterBooks() {//   return this.books.map(item => {//     const newItem = Object.assign({}, item);//     newItem.price = "¥" + item.price;//     return newItem;//   })// }},methods: {increment(index) {// 通过索引值获取到对象this.books[index].count++},decrement(index) {this.books[index].count--},removeBook(index) {this.books.splice(index, 1);},formatPrice(price) {return "¥" + price;}}
}).mount("#app");

style.css

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

vue3 (三) 小案例 简易小书架相关推荐

  1. C语言小案例_小程序学习(三)

    小程序学习--页面设置 案例一  float页面布局效果 1.案例的整体介绍 设计一个小程序,利用float布局来实现页面的布局效果.有两种效果分别是上左右下和上左中右下. 2.案例的代码详解 (1) ...

  2. 微信小程序 - 实战小案例 - 简易记事本

    多项技能,好像也不错.学习一下微信小程序. 教程:https://mp.weixin.qq.com/debug/wxadoc/dev/ 简介:一套用来开发在手机微信上运行的app框架,不用安装 组成: ...

  3. 黑桃k游戏java实战_#Java小案例 扑克牌小游戏

    知识点: 1.Collections.sort; 2.do while确保不重复; 3.重写compare 比较规则; 主要的对象有 1.玩家 (ID.姓名.手牌列表) 2.卡牌(花色.点数) 1.玩 ...

  4. 还在观望?CocosCreator3D小案例《小鸭快跑》新鲜出炉!

    摘要 CocosCreator 的 3D 版本正式上线!激动干嘛? 愣着啊! KUOKUO 正好手里有个小鸭子模型,于是就把它做成了一个小游戏. 正文 风骚的走位 系统事件来监听触摸 cc.syste ...

  5. java ssm小案例_简易的SSM框架整合小案例

    简易的SSM框架整合小案例 一.创建一个web工程的maven项目 1.项目名随便起 2.选择好你的maven路径,然后finish 二.配置pom.xml文件 org.springframework ...

  6. vue3 组件拖拽小案例

    vue3 实现组件拖拽小案例 一.实现效果 将不同组件拖拽至展示区展示 拖拽前 拖拽后,取消后还原(没有动态演示真抱歉) 二.实现过程 页面基本样式 <template><div c ...

  7. vue3.0网易云音乐及入门小案例

    前言 之前学习vue3.0时做了几个小案例,近段时间又找了几个案例想着把之前做的那些和现在做的放在一起于是休息的时候就搭建了一个vue3的项目.这个项目所用的数据都是页面上写死的,音乐播放器数据是调用 ...

  8. python计算银行余额_Python 小案例实战 —— 简易银行存取款查询系统

    Python 小案例实战 -- 简易银行存取款查询系统 涉及知识点 包的调用 字典.列表的混合运用 列表元素索引.追加 基本的循环与分支结构 源码 import sys import time ban ...

  9. 【Android笔记65】Android小案例之简易版的房贷计算器(附源代码)

    这篇文章,主要介绍如何使用Android实现一个简易版的房贷计算器小案例. 目录 一.房贷计算器 1.1.运行效果演示 1.2.前提准备 (1)等额本息和等额本金

最新文章

  1. python主要数据变量及其类型说明_Python的数据类型和变量
  2. ROS学习(十四):ROS Spinning
  3. MySQL中any、some、all关键字
  4. Web前端技术分享:什么是块元素?什么是行内元素?
  5. java中字符串函数_JAVA中字符串函数subString的用法小结
  6. 如何设计通用的回调机制
  7. 跟我一起数据挖掘(22)——spark入门
  8. 【软件工程】软件工程需求分析——面向对象分析
  9. 一款基于 Python 语言的 Linux 资源监视器!
  10. 一个简单的开源PHP爬虫框架『Phpfetcher』
  11. ATTCK实战系列(二)琢磨篇
  12. [转帖]16nm国内最先进 兆芯展示x86 KX-6000八核处理器
  13. 对keep-alive的理解是什么?
  14. 做测试为什么要掌握mysql_软件测试工作要掌握的知识
  15. 爱上c++的第六天(核心课程):继承和多态
  16. 滑动差分倒谱系数 matlab,【网安学术】基于音频特征参数的多语种分类算法
  17. AutodeskCAD卸载后无法再次安装?完美解决!
  18. 广告动画 android,age动漫官方网软件app-AGE动漫无广告纯净版下载v1.4安卓版-西西软件下载...
  19. linux安装autossh详细教程,Linux系统入门学习:如何安装autossh
  20. MATLAB说明图像增强,MATLAB数字图像处理(二)图像增强

热门文章

  1. sklearn中的datasets.make_moons函数
  2. 天籁obd接口针脚定义_常见汽车诊断头位置(OBD针脚定义).pdf
  3. 学python人工智能电脑要什么配置_没有基础能不能学人工智能 首选语言是Python吗...
  4. 电赛总结(二)——AD芯片总结之高速AD9224
  5. 直销软件开发是java好还是.net好
  6. jQurry实现PC详情页分享到微信、朋友圈、QQ空间、微博
  7. Android 自定义View之中国地图热点区域分布
  8. mysql数据库添加角色_用户系统 – MySQL数据库中的多个角色
  9. openwrt状态里添加CPU温度监控
  10. 2021年制冷与空调设备运行操作考试资料及制冷与空调设备运行操作考试总结