当前位置: 首页 > news >正文

[ 蓝桥杯Web真题 ]-布局切换

目录

介绍

准备

目标

规定

思路

解法参考


介绍

经常用手机购物的同学或许见过这种功能,在浏览商品列表的时候,我们通过点击一个小小的按钮图标,就能快速将数据列表在大图(通常是两列)和列表两种布局间来回切换。

本题需要在已提供的基础项目中使用 Vue 2.x 知识,实现切换商品列表布局的功能。

准备

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

├── effect.gif
├── goodsList.json
├── css
├── images
├── index.html
└── js├── axios.min.js└── vue.js

其中:

  • effect.gif 是最终实现的效果图。
  • goodsList.json 是请求需要用到的数据。
  • css 是样式文件夹。
  • images 是图片文件夹。
  • js/vue.js 是 Vue2.x 文件。
  • js/axios.min.js 是 axios 文件。
  • index.html 是页面布局及逻辑。

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

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

使用 live server 插件启动项目,并在浏览器中预览 index.html 页面,显示如下:

初始效果

当前并未实现数据异步加载和点击右上方按钮切换布局的效果。

注意:一定要通过 live server 插件启动项目,避免项目无法访问,影响做题。

目标

请在 index.html 文件中补全代码,最终实现数据渲染及切换布局的效果。

具体需求如下:

1.完成数据请求(数据来源 goodsList.json,请勿修改该文件中提供的数据)。在项目目录下已经提供了 axios,考生可自行选择是否使用。效果如下

数据渲染后的初始效果

2.点击“列表效果”的图标,图标背景色变为红色(即 class=active),“大图效果”的图标背景色变为灰色(即 class=active 被移除),布局切换为列表效果。效果如下

数据渲染后的初始效果

3.点击“大图效果”的图标,图标背景色变为红色(即 class=active),“列表效果”的图标背景色变为灰色(即 class=active 被移除),布局切换为大图效果。效果如下

大图效果

规定

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

思路

这道题目主要是考察axios的数据获取,Vue的遍历等相关知识。axios的数据获取我们在很多的题目已经有见到过了,vue的遍历使用的是v-for指令。点击大图和小图图标显示对应的内容我们可以使用v-if以及v-else来进行相应部分数据的展示,若符合v-if的条件,则显示大图部分的内容,v-else则显示小图的内容。

解法参考

  mounted() {// TODO:补全代码实现需求axios.get("./goodsList.json").then((res)=>{this.goodsList=res.data;})}

我们使用axios来进行发送请求,传入路径以及将获取到的数据赋值给goodsList数组。

 <div class="bar"><a class="grid-icon" :class="{'active':index===0}" @click="index=0"></a><a class="list-icon" :class="{'active':index===1}" @click="index=1"></a></div>

点击大小图标实现为其添加类class=active,让其背景变成红色。我们先在data中定义一个index=0,然后我们为两个图标分别绑定事件,点击第一个图标时将index赋值为0,点击第二个图标时将index赋值为1。同时给两个图标都绑定active的类名,当index等于0时,第一个图标就添加了active类,当index等于1时,第二个图标就添加了active类。

   <!--grid 示例代码,动态渲染时可删除--><ul class="grid" v-if="index==0" ><li v-for="(item,index) in goodsList" :key="index"><a href="#/3814" target="_blank"> <img :src="item.image.large" /></a></li></ul><ul class="list"  v-else><li v-for="(item,index) in goodsList" :key="index"><a href="#/3814" target="_blank">  <img :src="item.image.small" /></a><p>{{item.title}}</p></li></ul>

最后我们使用v-for对获取到的数据进行遍历,两个的主要区别就是图片的不同,因此对图片的路径进行绑定,然后当index==0时,说明是点击了第一个图标,因此相应的部分显示,否则使用v-else来显示另一个图标的内容。

好啦!本文就到这里结束啦!

相关文章:

  • 计算机毕业设计 SpringBoot的医院门诊在线挂号系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试
  • 使用linux CentOS本地部署SQL Server数据库
  • c#编码技巧(十五):新语法糖record深入分析
  • echarts词云图echarts-wordcloud使用方法
  • HarmonyOS--ArkTS(1)--基本语法(1)
  • c++新经典模板与泛型编程:const修饰符的移除与增加
  • Python函数和模块:编程的魔法函数
  • Leetcode刷题笔记——摩尔投票法
  • C++初阶(十四)list
  • [论文阅读]BEVFusion
  • Spring Boot 优雅地处理重复请求
  • Java IO流(五)(字符集基础知识简介)
  • 【3】密评-物理和环境安全测评
  • 分布式分布式事务分布式锁分布式ID
  • 1688API接口系列,商品详情数据丨搜索商品列表丨商家订单类丨1688开放平台接口使用方案
  • [笔记] php常见简单功能及函数
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Django 博客开发教程 8 - 博客文章详情页
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • node学习系列之简单文件上传
  • Spring框架之我见(三)——IOC、AOP
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 记一次和乔布斯合作最难忘的经历
  • 跨域
  • 十年未变!安全,谁之责?(下)
  • 什么软件可以剪辑音乐?
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 写给高年级小学生看的《Bash 指南》
  • Mac 上flink的安装与启动
  • ​插件化DPI在商用WIFI中的价值
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • %@ page import=%的用法
  • (6)添加vue-cookie
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Java数据结构)ArrayList
  • (分享)自己整理的一些简单awk实用语句
  • (十一)c52学习之旅-动态数码管
  • (一一四)第九章编程练习
  • ***监测系统的构建(chkrootkit )
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • @GetMapping和@RequestMapping的区别
  • [ C++ ] STL---仿函数与priority_queue
  • [.NET]桃源网络硬盘 v7.4
  • [20150707]外部表与rowid.txt
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [Android] Amazon 的 android 音视频开发文档
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [CF226E]Noble Knight's Path
  • [codevs 2822] 爱在心中 【tarjan 算法】
  • [codevs1288] 埃及分数