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

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


相关推荐

  • 华为C8816电信版ROOT过程

    华为C8816电信版ROOT过程

    2021年12月14日
    73
  • 对指定的来电的号码播放其它铃声

    对指定的来电的号码播放其它铃声

    2021年8月22日
    141
  • SMTP协议分析[通俗易懂]

    感谢原作者:http://blog.csdn.net/bripengandre/article/details/2191048SMTP协议分析第1章.    SMTP概述1.1. SMTP在邮件通信中的位置SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。SMTP在整个电子邮件通

    2022年4月11日
    607
  • Java的输入输出语句_c语言有没有输入输出语句

    Java的输入输出语句_c语言有没有输入输出语句一、概述  输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。Java语言体系中,对数据流的主要操作都封装在java.io包中,通过java.io包中的类可以实现计算机对数据的输入、输出操作…

    2022年4月19日
    39
  • 3.7v锂电池升压到5v_锂电池升压5伏电路图

    3.7v锂电池升压到5v_锂电池升压5伏电路图1,升压类型,小电流250MA类型2,升压类型,低功耗8uA,600MA类型3,升压类型,升压可达12V,1.2A类型4,升压类型,升压可达24V,1.2A类型5,升压类型,输出5V2.4A类型6,升压类型,输出5V3A类型7,锂电池充电IC,实现边充边放电8,锂电池稳压LDO芯片,和降压芯片1,升压类型,小电流250MA类型PW5410A是一颗低噪声,恒频1.2MHZ的开关电容电压倍增器。PW5410A的输入电压范围2.7V-5V,输出电压5V固

    2022年10月7日
    4
  • WPF WrapPanel

    WPF WrapPanelWrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够是就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行。Orientation——根据内容自动换行。当Horizontal选项看上去类似于Windows资源管理器的缩略图视图:元素是从左向右排列的,然后自上至下自动换行。Vertical选项看上去类似于Windows资源管理器的列表视图:元素是从上…

    2022年7月23日
    7

发表回复

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

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