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/166104.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 明翰英语教学系列之雅思常见词汇与固定搭配篇V1.0(持续更新)「建议收藏」

    明翰英语教学系列之雅思常见词汇与固定搭配篇V1.0(持续更新)「建议收藏」按场景记忆是最高效的,这里给出的音标全部是英氏。跟你没有相关性的表达你也要记下来,不仅可以用在听力、阅读、写作,还因为在雅思口语PART3中可能会问一些分类讨论的话题,不仅仅只说自己的情况。

    2022年6月10日
    345
  • RNN-bptt简单推导「建议收藏」

    RNN-bptt简单推导「建议收藏」摘要:在前面的文章里面,RNN训练与BP算法,我们提到了RNN的训练算法。但是回头看的时候在时间的维度上没有做处理,所以整个推导可能存在一点问题。那么,在这篇文章里面,我们将介绍bptt(BackPropagationThroughTime)算法如在训练RNN。关于bptt这里首先解释一下所谓的bptt,bptt的思路其实很简单,就是把整个RNN按时间的维度展

    2022年6月23日
    44
  • StrictMode使用详解

    StrictMode使用详解StrictMode    StrictMode最常用来捕捉应用程序的主线程,它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policyviolation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。除了主线程,我们还可以在Handler,AsyncTask,AsyncQueryHandler,IntentService等API中使用StrictMod

    2022年6月9日
    31
  • 阿里云centos镜像下载

    阿里云centos镜像下载下载地址:http://mirrors.aliyun.com/centos/这个界面提供了centos各个版本的目录,不过,点入具体的目录去只有一个readme文件,而没有镜像下载。readme文件中提供了精确版本的下载地址:http://vault.centos.org/,以6.8版本为例,可以根据信息一步一步找到需要的镜像文件这个地址是可以下载的,不过下载速度相对比较慢,针对网络比较差的环境,下载这个镜像简直就是折磨。回到最开始的阿里云镜像目录,点击7和8的根目录可以找到相关的镜像通过目录iso

    2022年6月3日
    60
  • 利用矩阵初等变换进行对角化

    利用矩阵初等变换进行对角化目录矩阵初等变换对角化证明矩阵初等变换记某矩阵为 其中为维度为 n 的行向量 则行初等变换有以下三种 1 交换两行的位置 2 3 同样的 对应的列初等变换就是把行向量换成列向量即可 为什么这些变换被称为矩阵的初等变换呢 或者说这些操作有什么特点呢 如果我们把矩阵看成一个多元一次齐次线性方程组的系数矩阵的话 那么很显然 这些操作并不会改变该方程组的解空间 即加入某个向量是变换前的解 那么一定也是变换后的解 反

    2025年7月3日
    2
  • Winscp连接不上Kali

    Winscp连接不上Kali解决Winscp无法连接kali的问题

    2022年9月13日
    2

发表回复

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

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