期末考试题-通过HTML编程Vue3选项式:简易购物车

devtools/2024/10/21 9:09:21/
html"><!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引用 element-plus 样式 --><!-- 注意:复制官方的 CDN 时加上 https --><link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css" /><!-- 使用 CDN 引入 vue3  --><script src="https://unpkg.com/vue@3/dist/vue.global.js"></script><!-- 引用 element-plus 中的 JavaScript --><!-- 注意复制官方的 CDN 时加上 https --><script src="https://unpkg.com/element-plus"></script><title>简易购物车</title><style>table,th,td {border: 1px solid #000;border-collapse: collapse;/* 设置表格边框合并 */width: 500px;margin: auto;text-align: center;}button {background-color: #c0bdbd;color: #fff;border: none;padding: 5px 10px;border-radius: 5px;cursor: pointer;}.remove{padding: 5px 10px;border-radius: 5px;cursor: pointer;}.remove:hover{  background-color: rgb(202, 202, 202);color: #fff;}</style>
</head><body><!-- vue 容器 --><div id="app"><div class="container"><table><tr><th></th><th>商品名称</th><th>价格</th><th>购买数量</th><th>操作</th></tr><tr v-for="(item, index) in goodsList" :key="item.id"><td>{{index+1}}</td><td>{{item.name}}</td><td>{{item.price}}</td><td><el-button type="info" plain :disabled="item.count<=0"@click="reduceCount(index)">-</el-button>{{item.count}}<el-button @click="addCount(index)"type="info" plain>+</el-button></td><td @click="remove(index)" class="remove">移除</td></tr><tr><td colspan="5">总价:{{totalPrice ?? ""}}</td></tr></div></div>
</body><script>const { createApp } = Vue;// 创建实例化 vue3 选项式const app = createApp({// 定义数据data() {return {// 模拟商品列表goodsList: [{id: 1,name: '华为手机',price: 2000,count: 0},{id: 2,name: '手机膜',price: 30,count: 0},{id: 3,name: '篮球',price: 200,count: 0}],// 使用空值合并运算符,渲染总价totalPrice: null,};},// 定义方法methods: {reduceCount(index) {// console.log(index);this.goodsList[index].count--;// 计算购物车中所有商品的总价// 使用reduce方法,将商品的价格乘以数量,然后相加,得到总价,其中acc是累加器,cur是值// 初始值是0,即acc的初始值// 语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)this.totalPrice = this.goodsList.reduce((acc, cur) => (acc + cur.price * cur.count), 0);// 若总价小于等于0,则清空总价if (this.totalPrice <= 0) {this.totalPrice = null;};},addCount(index) {this.goodsList[index].count++;this.totalPrice = this.goodsList.reduce((acc, cur) => acc + cur.price * cur.count, 0);},remove(index) {this.goodsList.splice(index, 1);this.totalPrice = null;}}});// 实例化 element-plus 组件,必须在挂载之前使用app.use(ElementPlus);// 将vue3实例挂载到id为app的容器上app.mount('#app');
</script></html>

http://www.ppmy.cn/devtools/56977.html

相关文章

Kafka 和 RabbitMQ对比

Kafka和RabbitMQ是两种广泛使用的消息队列系统&#xff0c;它们在设计理念、架构和功能上有很多相似之处&#xff0c;但也有许多显著的区别。以下是两者之间的异同点&#xff0c;以表格的形式详细阐述&#xff1a; 特性KafkaRabbitMQ消息模型基于日志&#xff08;Log-based&am…

VSCode + GDB + J-Link 单片机程序调试实践

VSCode GDB J-Link 单片机程序调试实践 本文介绍如何创建VSCode的调试配置&#xff0c;如何控制调试过程&#xff0c;如何查看修改各种变量。 安装调试插件 在 VSCode 扩展窗口搜索安装 Cortex-Debug插件 创建调试配置 在 Run and Debug 窗口点击 create a launch.json …

【Qt】之【Bug】大量出现“未定义的标识符”问题

背景 构建时出现大量错误 原因 中文注释问题 解决 方法1. 报错代码附近的中文注释全部删掉。。。 方法2. 报错的文件添加 // Chinese word comment solution #pragma execution_character_set("utf-8")

c++笔记

位运算符优先级 乘除求余>加减>移位运算符(>>, <<)>比较运算>位运算>逻辑运算符 位运算优先级没有比较运算符优先级高。 指针与引用写法 int& a, b; 定义了一个int引用a和int b。至于int& a还是int &a都可以&#xff0c;是不同的风格…

音视频入门基础:H.264专题(6)——FFmpeg源码:从H.264码流中提取NALU Header、EBSP、RBSP和SODB

音视频入门基础&#xff1a;H.264专题系列文章&#xff1a; 音视频入门基础&#xff1a;H.264专题&#xff08;1&#xff09;——H.264官方文档下载 音视频入门基础&#xff1a;H.264专题&#xff08;2&#xff09;——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…

LeetCode.68文本左右对齐

问题描述 给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词&#xff1b;也就是说&#xff0c;尽可能多地往每行中放置单词…

Python中的爬虫实战:猫眼电影爬虫

随着互联网技术的快速发展&#xff0c;网络上的信息量越来越庞大。猫眼电影作为国内领先的电影数据平台&#xff0c;为用户提供了全面的电影信息服务。本文将介绍如何利用python编写简单的猫眼电影爬虫&#xff0c;获取电影相关数据。 爬虫概述 爬虫&#xff0c;即网络爬虫&a…

简单科普-GPT到底是什么?

1.ChatGPT ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;是OpenAI研发的一款聊天机器人程序 &#xff0c;于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够基于在预训练阶段所见…