蓝桥杯 —— Web前端(数据交互类)【标题即题目链接,点击查看具体要求】

简介: 蓝桥杯 —— Web前端(数据交互类)【标题即题目链接,点击查看具体要求】

前言

web前端也会涉及到算法,但一般比较简单。

一、蓝桥杯是什么?🤔

蓝桥杯一般指蓝桥杯全国软件和信息技术专业人才大赛。

二、数据交互类题目

1.天气预报查询⭐⭐

f7a9acf731ad41efad2416f52a5d8c8c.png

解决方案:通过使用 jQuery 的 AJAX 请求,获取 JSON 中的数据。准备好一个对象,把数据存放到这个对象里面,然后获取到呈现内容的 div, 通过 for 循环遍历,把 JSON 文件中的内容在对应位置呈现出来。

jQuery 发送 AJAX参考链接

function getweather() {
    let data = {}
    $.ajax({
        type:'GET',
        dataType:'JSON',
        url:'js/weather.json',
        async:false,
        success:function(res){
            data = res.result
            var items = document.querySelectorAll('.item')
            for(var i=0;i<data.length;i++){
                items[i].children[0].src = data[i].weather_icon
                items[i].children[1].children[0].innerHTML = data[i].weather
                items[i].children[1].children[1].innerHTML = data[i].temperature
                items[i].children[1].children[2].innerHTML = data[i].winp
                items[i].children[1].children[3].children[0].innerHTML = data[i].days
                items[i].children[1].children[3].children[1].innerHTML = data[i].week
            }
        }
    }) 
}

2.实现卡号绑定功能⭐⭐

3f6a69c9ab44470697d1f30dbe0600ae.png

解决方案:通过使用 jQuery 的 AJAX 请求,获取 JSON 中的数据。通过 for 循环遍历,卡号和密码都匹配正确的 flag 设置为 true,之后再通过 if…else 条件语句,在对应 div 展示相应的内容。

function bind(cardno, password) {
    //Todo:补充代码
    let data = {}
    $.ajax({
        type:'GET',
        dataType:'JSON',
        url:'js/cardnolist.json',
        async:false,
        success:function(res){
            data = res.cardnolist
            for(var i=0;i<data.length;i++){
                var flag = false
                if(data[i].cardno == cardno && data[i].password == password){
                    flag = true
                    break
                }
            }
            if(flag){
                $('#tip1').addClass('show').removeClass('fade')
                $('#tip2').removeClass('show').addClass('fade')
            }else{
                $('#tip2').addClass('show').removeClass('fade')
                $('#tip1').removeClass('show').addClass('fade')
            }
        }
    })
}

3.购物车⭐⭐⭐

be89262e298e4791aac1d8ba9688d69f.png解决方案:在 created(){} 里使用 axios 发送请求,获取到 JSON 文件里面的数据,然后对购物车列表添加 v-for 渲染,在对应位置做出数据或图片的呈现。然后在定义两个方法,一个是 add() 方法,另一个是 sub() 方法,再绑定到对应按钮上,从而实现个数的加减。

Axios 发送请求参考链接

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>购物车</title>
  <script src="./js/vue.js"></script>
  <script src="./js/axios.js"></script>
  <link rel="stylesheet" href="./css/element-ui.css">
  <link rel="stylesheet" href="./css/index.css">
</head>
<body>
  <div class="container" id="app">
    <h4>购物车</h4>
    <!-- 购物车列表 -->
    <div v-for="(good,index) in carlist">
      <el-card class="box-card">
        <!-- 商品图片 -->
        <img :src="good.img">
        <div>
          <span>
            <!-- 商品名称 -->
            {{good.name}}
          </span>
          <div class="bottom clearfix">
            <el-button type="text" class="button" @click="add(index)">+</el-button>
            <el-button type="text" class="button">
              <!-- 商品数量 -->
              {{good.num}}
            </el-button>
            <el-button type="text" class="button" @click="sub(index)">-</el-button>
          </div>
        </div>
      </el-card>
    </div>
  </div>
  </div>
  <!-- 引入组件库 -->
  <script src="./js/element-ui.js"></script>
  <script>
    new Vue({
      el: "#app",
      data: {
        carlist: [] //购物车列表
      },
      created() {
        // 在这里使用axios 发送请求
        axios
        .get('./carList.json')
        .then(res=>{
          this.carlist = res.data
        })
        .catch(function(error){
          console.log(error)
        })
      },
      methods:{
        add(index){
          this.carlist[index].num++
        },
        sub(index){
          if(this.carlist[index].num>0){
            this.carlist[index].num--
          }
        }
      }
    })
  </script>
</body>
</html>

总结

数据交互,通常是发送 AJAX 或者 Axios 等请求,获取到数据,然后再对数据进行一些列的操作,达到预期的功能效果。

不积跬步无以至千里🌕 ,不积小流无以成江海🌊。

道阻且长,一起加油,与君共勉!😉

相关文章
|
3月前
|
并行计算 前端开发 JavaScript
Web Worker:让前端飞起来的隐形引擎
在现代 Web 开发中,前端性能优化是一个至关重要的课题,尤其是对于计算密集型的应用,如图像处理、视频处理、大规模数据分析等任务。单线程的 JavaScript 引擎常常成为性能瓶颈,导致应用变得迟缓。Web Worker,作为一种强大的技术,使得前端能够在后台进行并行计算,从而实现高效的任务处理,不影响主线程的运行和用户的交互体验。
396 108
|
3月前
|
JavaScript 前端开发 Java
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
432 72
前端框架选择之争:jQuery与Vue在现代Web开发中的真实地位-优雅草卓伊凡
|
5月前
|
移动开发 前端开发 JavaScript
前端web创建命令
本项目使用 Vite 搭建 Vue + TypeScript 开发环境,并基于 HTML5 Boilerplate 提供基础模板,快速启动现代前端开发。
69 2
|
5月前
|
Web App开发 编解码 移动开发
零基础音视频入门:你所不知道的Web前端音视频知识
本文回顾了Web端音视频的发展历程,同时还介绍了视频的编码、帧率、比特率等概念,提到了Canvas作为视频播放的替代方案,以及FFmpeg在音视频处理中的重要作用等知识。
158 1
|
9月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
261 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
12月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
250 6
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
988 14
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
309 0
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
435 6
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架