[ 蓝桥杯Web真题 ]-外卖给好评

news2024/9/25 9:38:20

目录

介绍

准备

目标

效果

规定

思路

解答参考


介绍

外卖是现代生活中必备的一环。收到外卖后,各大平台软件常常会邀请用户在口味,配送速度等多个方面给与评分。在 element-ui 组件中,已经有相应的 Rate 组件,但是已有组件只能对单一维度进行评分,在外卖评分这种场景中,样式基本上是固定的,功能也基本一样。若每写一个页面都要去复制一份类似代码,就会产生大量重复的代码,既不利于后期的维护,代码也不够简洁。为此需要前端工程师对 element-ui 的原 Rate 组件进行二次封装。

准备

开始答题前,需要先打开本题的项目代码文件夹,目录结构如下:

├── element-ui-2.6.2
│   ├── element-icons.ttf
│   ├── element-icons.woff
│   ├── element-ui.min.js
│   └── element-ui.style.css
├── index.html
├── js
│   ├── http-vue-loader.js
│   └── vue.min.js
├── my-rate.vue
└── effect.gif

其中:

  • index.html 是主页面。
  • element-ui-2.6.2 文件夹中存放的是 element-ui 库相关的脚本文件、样式文件及字体。
  • js 文件夹中存放的是 vue 及 http-vue-loader 库相关文件。
  • my-rate.vue 是待封装的评分组件文件。
  • effect.gif 是完成后的效果图。

注意:打开环境后发现缺少项目代码,请手动键入下述命令进行下载:

cd /home/project
wget https://labfile.oss.aliyuncs.com/courses/18213/03.zip && unzip 03.zip && rm 03.zip

在浏览器中预览 index.html 页面,显示如下所示:

目标

请在 my-rate.vue 文件中补充代码,具体要求如下:

  1. my-rate.vue 组件能够对不同的维度进行评分。

  2. my-rate.vue 组件对外抛出 change 事件,在三项评分均完成后,触发 change 事件,change 事件包含一个参数,用于传递改变后的分数值,其类型是对象,包含以下属性:

效果

完成后的效果见 effect.gif (提示:可以通过 VS Code 或者浏览器预览 gif 图片)。

实现该功能所需的 el-rate 组件 api 如下:

参数说明类型默认值
value/v-model绑定值number0
show-score是否显示当前分数,show-score 和 show-text 不能同时为真booleanfalse
change(event 事件)分值改变时触发,参数是改变后的分值(changed: object) => void

规定

  • 请勿修改my-rate.vue文件外的任何内容。

  • 请严格按照考试步骤操作,切勿修改考试默认提供项目中的文件名称、文件夹路径、class 名、id 名、图片名等,以免造成无法判题通过。自己先做一下吧:传送门


思路

这道题目主要是考察Vue以及elementUI的知识点。需要学会通过提供的组件API来实现相应的功能。同时也需要会使用Vue进行自定义事件的绑定来进行数据的传递。若对组件间如何实现通信感兴趣的小伙伴可以这篇文章!

解答参考

 <ul class="rate-list" >
      <li>
        <!-- TODO 补全 el-rate 属性 -->
        送餐速度:<el-rate v-model="speed" show-score  @change="changeHandler"></el-rate>
      </li>
      <li>
        <!-- TODO 补全 el-rate 属性 -->
        外卖口味:<el-rate v-model="flavour" show-score  @change="changeHandler"></el-rate>
      </li>
      <li>
        <!-- TODO 补全 el-rate 属性 -->
        外卖包装:<el-rate v-model="pack"  show-score  @change="changeHandler"></el-rate>
      </li>
    </ul>

对每一个el-rate标签使用v-model来进行绑定,获取它对应的数值。同时加上show-score属性让其显示当前分数。并未每一个标签绑定change事件,当数值改变时触发。

  methods:{
    changeHandler(){
      if(this.speed && this.flavour && this.pack){
        const rate = {
           speed: this.speed, // 送餐速度
           flavour: this.flavour, // 外卖口味
           pack: this.pack, // 外卖包装
        }
        this.$emit("change",rate)
      }
    }
  }

当有分值改变时,触发changeHandler函数,并判断三个属性是否都有对应的值,若有,则使用$emit对外抛出 change 事件,并传入对应的对象数值。

文件整体代码:

<template>
  <div class="block">
    <span class="demonstration">请为外卖评分: </span>
    <ul class="rate-list" >
      <li>
        <!-- TODO 补全 el-rate 属性 -->
        送餐速度:<el-rate v-model="speed" show-score  @change="changeHandler"></el-rate>
      </li>
      <li>
        <!-- TODO 补全 el-rate 属性 -->
        外卖口味:<el-rate v-model="flavour" show-score  @change="changeHandler"></el-rate>
      </li>
      <li>
        <!-- TODO 补全 el-rate 属性 -->
        外卖包装:<el-rate v-model="pack"  show-score  @change="changeHandler"></el-rate>
      </li>
    </ul>
  </div>
</template>
<style>
.block {
  border: 1px solid #c7c5c5;
  padding: 10px;
}
.rate-list {
  list-style: none;
  padding-inline-start: 20px;
  margin-block-start: 10px;
  margin-block-end: 10px;
}
.el-rate {
  display: inline-block;
}
</style>

<script>
module.exports = {
  data() {
    return {
      speed: 0, // 送餐速度
      flavour: 0, // 外卖口味
      pack: 0, // 外卖包装
    };
  },
  /* TODO: 考生需要完成以下内容 */
  methods:{
    changeHandler(){
      if(this.speed && this.flavour && this.pack){
        const rate = {
           speed: this.speed, // 送餐速度
           flavour: this.flavour, // 外卖口味
           pack: this.pack, // 外卖包装
        }
        this.$emit("change",rate)
      }
    }
  }
 
  
};
</script>

好啦,本文就到这里了,这道题比较简单就不过多讲解了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1284940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds

PointPillars--点云目标检测的快速编码器 摘要 点云中的物体检测是许多机器人应用(如自动驾驶)的重要方面。在本文中&#xff0c;我们考虑将点云编码为适合下游检测流程的格式的问题。最近的文献提出了两种编码器;固定编码器往往很快&#xff0c;但牺牲了准确性&#xff0c;而…

【latex笔记】双栏格式下插入单栏、双栏格式图片

双栏格式下插入单栏、双栏格式图片 1.缘起multicols2.双栏格式 插入单栏图片3.双栏格式 插入双栏图片 1.缘起multicols 插入双栏格式图片问题被困扰了有很长一段时间&#xff0c;查看网络资源也一直没找到解决方法&#xff0c;今天查看Latex官方文档&#xff0c;才发现因为mul…

spring cloud 整合Feign经行远程调用

文章目录 Feign远程调用Feign替代RestTemplate1&#xff09;引入依赖2&#xff09;添加注解3&#xff09;编写Feign的客户端4&#xff09;测试5&#xff09;总结 自定义配置配置文件方式Java代码方式 Feign使用优化 Feign远程调用 先来看我们以前利用RestTemplate发起远程调用…

将rtsp视频流发送到AWS Kinesis Video Streams的方案——使用Gstreamer(C++) Command Line

大纲 1 创建Kinesis Video Streams1.1 创建视频流1.2 记录Creation Time 2 创建策略2.1 赋予权限2.2 限制资源2.3 Json格式描述&#xff08;或上面手工设置&#xff09;2.4 注意事项 3 创建IAM用户3.1 生成密钥对3.2 附加策略3.3 记录访问密钥对 4 编译C 创建者库5 发送6 检查参…

聊聊 Jetpack Compose 的 “状态订阅自动刷新” -- mutableStateListOf

Jekpack Compose “状态订阅&自动刷新” 系列&#xff1a; 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - MutableState/mutableStateOf 】 【 聊聊 Jetpack Compose 的 “状态订阅&自动刷新” - - remember 和重组作用域 】 【 聊聊 Jetpack Compose 的 …

非标设计之气缸类型

空压机&#xff1a; 空压机又称空气压缩机&#xff0c;简单来说就是将机械能转化为压力能来进行工作的&#xff0c;空压机在电力行业应用比较多&#xff0c;除了在电力行业应用较多外&#xff0c;其实空压机还有一个比较常见的用途就是用来制冷和分离气体&#xff0c;输送气体…

java SSM毕业生信息管理myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

前言 学校的规模不断扩大&#xff0c;学生数量急剧增加&#xff0c;有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等&#xff0c;从而减少管…

【力扣热题100】207. 课程表 python 拓扑排序

【力扣热题100】207. 课程表 python 拓扑排序 写在最前面207. 课程表解决方案&#xff1a;判断是否可以完成所有课程的学习方法&#xff1a;拓扑排序实现步骤Python 实现性能分析结论 写在最前面 刷一道力扣热题100吧 难度中等 https://leetcode.cn/problems/course-schedule…

[leetcode ~二叉树] 模版

文章目录 1. 左叶子之和2. 翻转二叉树 E 1. 左叶子之和 :::details 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 示例 1&#xff1a; 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中&#xff0c;有两个左叶子&#xff0c;分别是 9 和 15&…

Proteus仿真--基于1602LCD与DS18B20设计的温度报警器

本文介绍基于1602LCD与DS18B20设计的温度报警器设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 其中温度传感器选用DS18B20器件&#xff0c;主要用于获取温度数据并上传&#xff0c;温度显示1602LCD液晶显示器&#xff0c;报警模块选用蜂鸣器&#…

隐写术和人工智能

在一项新的研究中&#xff0c;人工智能对齐研究实验室 Redwood Research 揭示了大型语言模型 (LLM) 可以掌握“编码推理”&#xff0c;这是一种隐写术形式。 这种有趣的现象使得大型语言模型能够以人类读者无法理解的方式巧妙地将中间推理步骤嵌入到生成的文本中。 大型语言…

从零开始学习 JS APL(五):完整指南和实例解析

目录 学习目标&#xff1a; 学习内容&#xff1a; 学习时间&#xff1a; 学习内容&#xff1a; Window对象&#xff1a; 定时器-延时函数&#xff1a; JS 执行机制&#xff1a; location对象&#xff1a; 本地存储&#xff1a; 本地存储分类- localStorage&#xff1a…

Fiddler移动端抓包

本篇文章&#xff0c;博主想使用通俗易懂的话语&#xff0c;让大家明白以下内容&#xff1a; 什么是抓包哪些场景需要用到抓包Fiddler抓包的原理怎样使用Fiddler进行移动端抓包 抓包 包 (Packet) 是TCP/IP协议通信传输中的数据单位&#xff0c;一般也称“数据包”。 我们平常…

uniapp 云打包 生成安卓证书文件

现在使用uniapp来开发小程序&#xff0c;H5&#xff0c;APP越来越多了&#xff0c;目前开发了一款APP&#xff0c;使用的也是uniapp。在此记录下用uniapp开发app云打包时约到的一些问题吧。 前因是我司安卓同学休产假&#xff0c;像云打包时需要的证书文件只能自己动手来搞。看…

ai绘画Midjourney绘画提示词Prompt教程

一、Midjourney绘画工具 SparkAi【无需魔法使用】&#xff1a; SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&#xff01;本系统使用NestjsVueTypescript框架技术&#xff0c;持续集成AI能力到…

【计算机网络笔记】物理层——物理介质

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

element-ui upload组件中将file文件数据转成二进制流数据格式

方法一 handleBeforeUpload (file)const reader new FileReader()reader.readAsArrayBuffer(file)reader.onload async function (theFile) {const binary new Blob([theFile.target.result]) // 转成二进制流数据 即binary数据格式}}方法二 const aBlob new Blob([file],…

阿里云租赁费用_阿里云服务器多配置报价表

阿里云服务器租用费用&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、轻量应用服务器2核2G3M带宽轻量服务器一年87元&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;ECS云服务器e系列2核2G配置99元一年、2核4G配置365元一年、2核8G配置522元一年…

[HTML]Web前端开发技术7(HTML5、CSS3、JavaScript )CSS的定位机制——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;佬佬会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…