Vue(9)购物车练习

Vue(9)购物车练习购物车案例经过一系列的学习,我们这里来练习一个购物车的案例**需求:**使用vue写一个表单页面,页面上有购买的数量,点击按钮+或者-,可以增加或减少购物车的数量,数量最少不得少于0,点击移除按钮

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

购物车案例

经过一系列的学习,我们这里来练习一个购物车的案例

  需求:使用vue写一个表单页面,页面上有购买的数量,点击按钮+或者-,可以增加或减少购物车的数量,数量最少不得少于0,点击移除按钮,会移除该商品,当把所有的商品移除后,页面上的表单消失,然后出现文字:购物车为空,表单下方是商品的总价格,随着商品的数量增加而增加,默认是0元,总体效果如下:
Vue(9)购物车练习
 

代码实现

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="../js/vue.js"></script>
  <style>
    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;
    }
  </style>
</head>
<body>
<div id="app">
  <div v-if="books.length">
    <table>
      <thread>
        <tr>
          <th></th>
          <th>书籍名称</th>
          <th>出版日期</th>
          <th>价格</th>
          <th>购买数量</th>
          <th>操作</th>
        </tr>
      </thread>
      <tbody>
      <tr v-for="(book, index) in books" :key="book">
        <td>{{index+1}}</td>
        <td>{{book.name}}</td>
        <td>{{book.publish_date}}</td>
        <td>{{book.price | showPrice}}</td>
        <td>
          <button @click="decrease(index)" :disabled="book.count <= 0">-</button>
          {{book.count}}
          <button @click="increase(index)">+</button>
        </td>
        <td>
          <button @click="removeClick(index)">移除</button>
        </td>
      </tr>
      </tbody>
    </table>
    <p>总价:{{totalPrice | showPrice}}</p>
  </div>
  <h2 v-else>购物车为空</h2>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      books: [
        {"name":"算法导论", "publish_date":"2006-9", "price":20.00, "count": 0},
        {"name":"UNIX编程艺术", "publish_date":"2006-2", "price":30.00, "count": 0},
        {"name":"编程技术", "publish_date":"2008-10", "price":40.00, "count": 0},
        {"name":"代码大全", "publish_date":"2006-3", "price":50.00, "count": 0},
      ],
    },
    methods: {
      // 增加+
      decrease(index){
        this.books[index].count-=1
      },
      // 减少-
      increase(index){
        this.books[index].count+=1
      },
      // 移除按钮
      removeClick(index){
        this.books.splice(index, 1)
      }
    },
    computed: {
      // 计算总价格
      totalPrice(){
        let totalPrice = 0
        for (let item of this.books){
          totalPrice += item.price * item.count
        }
        return totalPrice
      }
    },
    // 过滤器,将价格过滤成有2位小数的
    filters: {
      showPrice(price){
        return '¥' + price.toFixed(2)
      }
    }
  })
</script>
</body>
</html>

以上就是全部代码,当中使用到了很多知识点

  • v-for:循环,循环books列表
  • v-on:事件监听,监听点击事件
  • disabled:按钮是否可以点击的属性,为True可点击,为False不可点击,增加判断条件:disabled="book.count <= 0"当购物车数量≤0,则无法点击
  • v-ifv-else:条件判断,判断books的列表长度,如果有长度展示列表,如果长度为0则展示文字购物车为空
  • filters:自定义过滤器,过滤价格,使本身的价格过滤后带有2位小数
  • computed:计算属性,计算购物的总价格
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164861.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月29日 下午3:16
下一篇 2022年7月29日 下午3:16


相关推荐

  • python爬虫代理服务器_Python爬虫多线程抓取代理服务器

    python爬虫代理服务器_Python爬虫多线程抓取代理服务器Python 作为一门功能强大的脚本语言来说 经常被用来写爬虫程序 下面是 Python 爬虫多线程抓取代理服务器首先通过谷歌把包含代理服务器地址的网页查出来 我选择从 http www 88181 com 这个网站上去抓 在它上面了爬了 800 个代理 选择的 8 个页面 usr bin envpython coding utf 8importurlli

    2026年3月26日
    2
  • 深入浅出理解 Java回调机制(异步)

    深入浅出理解 Java回调机制(异步)本片文章为转载,原文地址:http://codecloud.net/java-5-6371.html什么是回调?今天傻傻地截了张图问了下,然后被陈大牛回答道“就一个回调…”。此时千万个草泥马飞奔而过哈哈,看着源码,享受着这种回调在代码上的作用,真是美哉。不妨总结总结。一、什么是回调回调,回调。要先有调用,才有调用者和被调用者之间的回调。所以在百度百科中是这样的:

    2022年7月21日
    16
  • 【浏览器】浏览器缓存

    【浏览器】浏览器缓存一浏览器缓存机制浏览器在每次发生请求时 先在在浏览器缓存中查找该请求的结果和缓存标识 并且每次收到请求结果均会把请求结果和缓存标识保存在浏览器缓存中 浏览器缓存策略分类缓存策略的分类 强缓存 不会向服务器发送请求 直接从缓存中读取资源 协商缓存 强制缓存失效后 浏览器携带缓存标识向服务器发起请求 由服务器根据缓存标识决定是否使用缓存的过程缓存策略通过设置 HTTPHeader 来实现的 获取资源形式状态码发送请求到服务器相关设置字段强缓存从缓存取 200 f

    2026年3月26日
    2
  • 恢复pycharm中误删的Python文件

    恢复pycharm中误删的Python文件(1)找到删除的上一级文件=>右键,找到LocalHistory=>ShowHistory(2),打开之后,双击左边的恢复时间内容,在右边操作框中,恢复,这里只能一个一个恢复(3)注意,这里恢复,应该选择第二个”RevertSelection”.(4)再恢复的时候可能需要等几秒,这样就成功恢复了….

    2022年8月25日
    12
  • 渗透测试常用工具汇总_渗透测试实战

    渗透测试常用工具汇总_渗透测试实战目录1.Wireshark2.Metasploit3.Nmap4.Nessus5.SQLMap6.W3af1.WiresharkWireshark(前称Ethereal)是一个网络分包分析软件,是世界上使用最多的网络协议分析器。Wireshark兼容所有主要的操作系统,如Windows、Linux、macOS和Solaris。kali系统里面自带有这个软件,我们可以直接使用;或者可以在网上下载windows版本,在windows系统里使用。..

    2022年8月12日
    9
  • Idea激活码最新教程2024.2.3版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2024.2.3版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2024 2 3 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2024 2 3 成功激活

    2025年5月30日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号