蓝桥杯 —— 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 等请求,获取到数据,然后再对数据进行一些列的操作,达到预期的功能效果。

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

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

相关文章
|
6天前
|
前端开发 JavaScript API
探索现代Web开发中的动态数据交互——前端与后端整合实战
本文探讨了现代Web开发中前端与后端整合的关键技术点,通过实际案例演示了如何利用JavaScript和Node.js实现动态数据交互,全面解析从数据请求到响应的全过程。
|
5天前
|
Java
2016届蓝桥杯大赛软件类国赛Java大学B组 愤怒小鸟 数学模拟
2016届蓝桥杯大赛软件类国赛Java大学B组 愤怒小鸟 数学模拟
20 4
|
5天前
|
Java
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针
15 3
|
5天前
|
Java
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
12 2
|
5天前
|
Java
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
6 1
|
5天前
|
Java
2023蓝桥杯大赛软件类省赛Java大学B组G题 买二增一 队列的简单应用
2023蓝桥杯大赛软件类省赛Java大学B组G题 买二增一 队列的简单应用
10 1
|
8天前
|
Java
2021蓝桥杯大赛软件类省赛Java大学B组 时间显示
2021蓝桥杯大赛软件类省赛Java大学B组 时间显示
13 0
2021蓝桥杯大赛软件类省赛Java大学B组 时间显示
|
5天前
|
存储 前端开发 算法
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
4 0
|
8天前
|
Java
2020蓝桥杯大赛软件类省赛Java大学B组 寻找2020
2020蓝桥杯大赛软件类省赛Java大学B组 寻找2020
12 0
|
8天前
|
Java
2022蓝桥杯大赛软件类省赛Java大学B组真题 刷题统计
2022蓝桥杯大赛软件类省赛Java大学B组真题 刷题统计
11 0

热门文章

最新文章