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

news/2024/7/10 1:37:22 标签: 前端, 蓝桥杯, Web应用开发, Vue, axios, javascript

目录

介绍

准备

目标

规定

思路

解法参考


介绍

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

本题需要在已提供的基础项目中使用 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则显示小图的内容。

解法参考

javascript">  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类。

javascript">   <!--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来显示另一个图标的内容。

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


http://www.niftyadmin.cn/n/5253020.html

相关文章

【补题】 1

蓝桥杯小白赛 ​​​​​​​3.小蓝的金牌梦【算法赛】 - 蓝桥云课 (lanqiao.cn) 数组长度为质数&#xff0c;最大的子数组和 素数 前缀和 #include "bits/stdc.h" using namespace std; #define int long long #define N 100010 int ans[N];int s[N];vector&l…

046:vue通过axios调用json地址数据的方法

第046个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

第二十一章总结。。

计算机网络实现了堕胎计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是再已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xff0c;相互之间可以交换数据&#xff0c;编写网络应用程序前&#xff0c;首先必须明确网络协议…

【数据结构 — 排序 — 选择排序】

数据结构 — 排序 — 选择排序 一.选择排序1.基本思想2.直接选择排序2.1算法讲解2.2.代码实现2.2.1.函数定义2.2.2.算法接口实现2.2.3.测试代码实现2.2.4.测试展示 3.堆排序3.1.算法讲解3.2.代码实现3.2.1.函数定义3.2.2.算法接口实现3.2.3.测试代码实现3.2.4.测试展示 一.选择…

smarty模版 [BJDCTF2020]The mystery of ip 1

打开题目 点击flag给了我们一个ip 点击hint&#xff0c;查看源代码处告诉了我们要利用这个ip bp抓包&#xff0c;并添加X-Forward-For头 所以这道题是XFF可控 本来联想到XFF漏洞引起的sql注入&#xff0c;但是我们无论输入什么都会正常回显&#xff0c;就联想到ssti注入 我们…

动态规划01-斐波那契类型一

斐波那契类型一 1. 斐波那契数2. 爬楼梯3. 第n个泰波那契数 1. 斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#x…

Terminator的layout设置(一个新的一键启动思路)

首先你得有terminator&#xff1a; sudo apt install terminator然后就能使用了&#xff0c;我一般喜欢修改它原本的水平和垂直分割&#xff1a;用ctrlshifta和ctrlshifts 把屏幕先分成多块&#xff1a; 比如是这样的&#xff0c;接下来 右键->点击Preference 弹框中上方标…

docker-compose安装教程

1.确认docker-compose是否安装 docker-compose -v如上图所示表示未安装&#xff0c;需要安装。 如上图所示表示已经安装&#xff0c;不需要再安装&#xff0c;如果觉得版本低想升级&#xff0c;也可以继续安装。 2.离线安装 下载docker-compose安装包&#xff0c;上传到服务…