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

目录

介绍

准备

目标

效果

规定

思路

解答参考


介绍

外卖是现代生活中必备的一环。收到外卖后,各大平台软件常常会邀请用户在口味,配送速度等多个方面给与评分。在 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>

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3 vue-router过渡动效 滚动行为 (四)

文章目录 一、过渡动效1.1安装animate.css1.2 利用元信息存储过渡名称1.3 在组件中使用 二、滚动行为2.1 始终滚动到顶部2.2 相对于某个元素的偏移量2.3 保持之前的滚动位置 一、过渡动效 1.1安装animate.css npm install animate.css --save1.2 利用元信息存储过渡名称 {pa…

编译原理:NFA转DFA(原理+完整代码+可视化实现)

NFA转换为DFA 【本文内容摘要】 什么是DFA通过子集构造法将NFA转换为DFA生成DFA的dot文件并且形成可视化。 如果本文对各位看官有用的话&#xff0c;请记得给一个免费的赞哦&#xff08;收藏也不错&#xff09;&#xff01; 文章目录 NFA转换为DFA一、什么是DFA二、NFA转换为…

微信视频无法播放,快速进行格式转换方法

你是否遇到过这样的事情呢&#xff0c;朋友或者家人在电脑上用微信给你发的视频&#xff0c;在自己的微信上点开却无法播放。这种是什么原因造成的呢&#xff1f;是不是需要将这些无法播放的视频转换为微信支持的格式才行&#xff0c;那应该如何转换呢&#xff1f; 不要着急&a…

3.5毫米音频连接器接线方式

3.5毫米音频连接器接线方式 耳机插头麦克风插头 绘制电路图注意事项 3.5毫米音频连接器分为单声道开关型和无开关型如下图&#xff1a; sleeve&#xff08;套筒&#xff09; tip&#xff08;尖端&#xff09; ring&#xff08;环&#xff09; 耳机插头 麦克风插头 绘制电路图…

二叉树遍历 LeetCode 1038. 从二叉搜索树到更大和树

1038. 从二叉搜索树到更大和树 给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 从图中可以看出&#xff0c;每个节点是BST右中左遍历时&#xff0c;遍历到的节点的值加上之前所有节点的值。 在遍历时可以使…

rvos 3编译与链接

做下面的两个练习需要&#xff1a; 在vmvb上装一个ubuntu会gcc、vi的基本使用 用vi写一个hello.cgcc -o hello.creadelf -h hello.oreadelf -S hello.oobjdump -S hello.o 用vi编辑一个test.cgcc -c test.creadelf -S test.o.text:代码 .data:初始化的全局变量和静态变量…

进程间通信3

4. POSIX信号量 POSIX 有名信号量 这种有名信号量的名字由类似“/somename”这样的字符串组成&#xff0c;注意前面有一个正 斜杠&#xff0c;这样的信号量其实是一个特殊的文件&#xff0c;创建成功之后将会被放置在系统的一个特殊的 虚拟文件系统/dev/shm 之中&#xff0c;不…

派对的最大快乐值

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 派对的最大快乐值 &#x1f48e;总结 派对的最大快乐值 题目 员工信息的定义如下&#xff1a; 公司的每个员工都符合 Employee 类的描述。整个公司的人员结构可以看作是一棵标准的、没有环的多叉树。树的头节点是公…

【Hydro】Python绘制降雨径流双Y轴成果图

目录 说明源代码说明 双y轴图像具有单y轴图像没有的对比效果,通常会用来绘制降雨径流成果图,在MATLAB中有plotyy函数可以实现,Python的实现方式没有MATLAB那样方便,不过实现效果却也不见得差。 Python中的matplotlib通常使用twinx来生成双Y轴,下图便是使用matplotlib绘制…

配置linux系统用户名高亮

Centos: export PS1\e[1m\e[32m\u\h\e[m:\e[34m\w\e[31m\e[1m\$\e[m Ubuntu: force_color_promptyes

Graphpad Prism10.1.0 安装教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件&#xff0c;它可以将科学图形、综合曲线拟合&#xff08;非线性回归&#xff09;、可理解的统计数据、数据组织结合在一起&#xff0c;除了最基本的数据统计分析外&#xff0c;还能自动生成统…

【Python】OpenCV库中常用函数详解和示例

在Python中&#xff0c;OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个广泛使用的图像和视频处理库。它包含许多用于图像处理和计算机视觉任务的函数。本文对一些常用的OpenCV函数及其详细解释和示例&#xff0c;以帮助大家理解和使用。 目录 cv2.…

小型图书管理系统

摘要 随着各图书馆的图书数量不断增多和图书馆规模的不断扩大&#xff0c;管理这些庞大的体系非常困难的&#xff0c;因为图书的情况是随时改变的&#xff0c;因此必需对图书进行动态的管理&#xff0c;而这对于一个管理人员来说是一件比较复杂的事情。 针对各个模块不同的数据…

ros2+UBUNTU读取STM32发送过来的数据(C++)

ATTENTION:一般ros2上位机访问STM32不是使用串口&#xff0c;即使树莓派有串口&#xff0c;我也不会用的&#xff0c;因为那还要去学习其他的语言&#xff0c;一般就是ros2---------ubs转串口-------STM32串口。 这个USB转串口&#xff0c;我们已经安装了CH340驱动了&#xff…

Qt篇——QChartView实现鼠标滚轮缩放、鼠标拖拽平移、鼠标双击重置缩放平移、曲线点击显示坐标

话不多说。 第一步&#xff1a;自定义QChartView&#xff0c;直接搬 FirtCurveChartView.h #ifndef FITCURVECHARTVIEW_H #define FITCURVECHARTVIEW_H #include <QtCharts>class FitCurveChartView : public QChartView {Q_OBJECTpublic:FitCurveChartView(QWidget *…

23、什么是卷积的 Feature Map?

这一节介绍一个概念&#xff0c;什么是卷积的 Feature Map&#xff1f; Feature Map, 中文称为特征图&#xff0c;卷积的 Feature Map 指的是在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;通过卷积这一操作从输入图像中提取的特征图。 上一节用示意动图介绍了卷积算…

【开源】基于Vue和SpringBoot的开放实验室管理系统

项目编号&#xff1a; S 013 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S013&#xff0c;文末获取源码。} 项目编号&#xff1a;S013&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实…

3.镜像加速器

目录 1 阿里云 2 网易云 从网络上拉取镜像的时候使用默认的源可能会慢&#xff0c;用国内的源会快一些 1 阿里云 访问 阿里云-计算&#xff0c;为了无法计算的价值 然后登录&#xff0c;登录后搜索 容器镜像服务 点击容器镜像服务 点击管理控制台 点击 镜像工具->镜像…

Python的requests库实现HTTPS

嘿&#xff0c;Python程序员们&#xff01;今天我们要来点刺激的——使用Python的requests库实现HTTPS请求&#xff01;是的&#xff0c;你没有听错&#xff0c;我们要一起迈入HTTPS的神秘世界&#xff01; 首先&#xff0c;我们来了解一下HTTPS是什么。HTTPS是HTTP Secure的缩…

前端时间的失败总结复盘

分享失败经验&#xff0c;前段时间的总结复盘&#xff1a; 与伙伴合作面对异常决策要及时提出质疑&#xff0c;怼&#xff0c;别太客气&#xff0c;客气起来&#xff0c;小心翼翼在意他人情绪那么这个项目就会让人难受&#xff0c;不要因为因为伙伴身上有标签/光环/权威就觉得…