b站黑马的Vue快速入门案例代码——【axios+Vue】天知道(天气信息查询功能)

news2025/3/3 4:53:43

目录

         目标效果:

更换的新接口+接口文档:

天知道新的Get请求接口:http://ajax-api.itheima.net/api/weather

html文件中注意因为接口更换,要修改原代码为如下红字部分:

重点原理:

(1)v-on可以传递自定义参数,v-on:click=”...“的简写是@click,其他事件同理

(2)v-on可以结合事件修饰符

e.g.@keyup.enter="add"指——当键盘回车键弹起后,调用add事件

(3)v-model获取+设置 表单元素 的值

【v-model双向数据绑定——表单数据和绑定的数据互相同步修改】

(4)v-for——【遍历数组】【是响应式的,和数据绑定,数据没了,就也不生效了】根据数据生成列表结构

语法   v-for=(item,index) in arr

(5){{}}差值表达式是v-text的简写——【解析文本用】设置标签的文本值 

代码部分:

1.main.js(全是重点)

2.天知道案例.html(部分重点,用{{}}渲染数据到页面,查看结构)

【注意:在引入main.js之前,引入vue.js和axios.min.js】

3.vue.js(辅助作用)

安装Vue的方法 /获取vue.js文件的方法: 

4.axios.min.js(辅助作用)

(1)可以用axios在线网址【要连网】:

(2)也可以下载axios.min.js本地文件:

5.reset.css(辅助作用)

6.index.css(辅助作用)


目标效果:

1.在文本框输入想要查询天气信息的城市的名称,点击搜索按钮/按键盘的Enter回车键,即可获得该城市的天气信息。

2.点击文本框下面的四个城市中任意一个的名称,可以获得该城市的天气信息。

e.g.1初始状态:

e.g.2文本框中输入南京:

 点击搜索按钮/按键盘的Enter回车键,获得南京的天气信息:

 

 e.g.3点击文本框下面的深圳:

 获得深圳的天气信息:

更换的新接口+接口文档:

天知道新的Get请求接口:http://ajax-api.itheima.net/api/weather

  请求地址: http://ajax-api.itheima.net/api/weather

  请求方法:get

  请求参数:city(城市名)

  响应内容:天气信息

e.g.:http://ajax-api.itheima.net/api/weather?city=南京

html文件中注意因为接口更换,要修改原代码为如下红字部分:

      <!-- v-for="item in weatherList"遍历 天气预备信息列表weatherList数组里的每一个数据item -->

      <li v-for="item in weatherList">

        <!--{{item.wea}} 渲染天气信息 -->

        <div class="info_type"><span class="iconfont">{{item.wea}}</span></div>

        <div class="info_temp">

          <!--{{item.tem2}} 渲染低温信息 -->

          <b>{{item.tem2}}</b>

          ~

          <!--{{item.tem1}} 渲染高温信息 -->

          <b>{{item.tem1}}</b>

        </div>

        <!--{{item.day}} 渲染日期信息 -->

        <div class="info_date"><span>{{item.day}}</span></div>

重点原理:

(1)v-on可以传递自定义参数,v-on:click=”...“的简写是@click,其他事件同理

(2)v-on可以结合事件修饰符

e.g.@keyup.enter="add"指——当键盘回车键弹起后,调用add事件

(3)v-model获取+设置 表单元素 的值

【v-model双向数据绑定——表单数据和绑定的数据互相同步修改】

(4)v-for——【遍历数组】【是响应式的,和数据绑定,数据没了,就也不生效了】根据数据生成列表结构

语法   v-for=(item,index) in arr

item遍历的每一项【可改名字】

index遍历的每一项的索引号

in关键字 【不可改】

arr遍历的数据/数组【可改名字】

(5){{}}差值表达式是v-text的简写——【解析文本用】设置标签的文本值 

代码部分:

1.main.js(全是重点)

/*
  之前的请求地址【现在已经无效了】: http://wthrcdn.etouch.cn/weather_mini
  有效的请求地址: http://ajax-api.itheima.net/api/weather
  请求方法:get
  请求参数:city(城市名)
  响应内容:天气信息

  1. 点击回车
  2. 查询数据
  3. 渲染数据
  */
var app = new Vue({
    el: "#app",
    data: {
        city: "",//因为查询的是城市信息
        weatherList: []//天气预备信息列表,用一个空数组存放
    },
    methods: {
        //searchWeather搜索天气预报信息方法
        searchWeather: function () {
            //用that存放this,此处this指当前对象#app
            var that = this;
            //用axios,发起get请求
            //this.city可以获得文本框输入的城市名称,此处this指当前对象#app
            axios.get("http://ajax-api.itheima.net/api/weather?city=" + this.city)
                //1.请求成功
                .then(function (response) {
                    // response.data.data.data是在获取请求成功后的数据中,天气预报信息的数组
                    // 将天气预报信息的数组,赋值给#app中的weatherList 
                    that.weatherList = response.data.data.data;
                })
                //2.请求失败
                .catch(function (err) {
                    console.log(err);
                })
        },
        //changeCity改变城市方法,点击下面的城市名称,可以切换文本框中:为对应城市的名称
        changeCity: function (city) {//形参city接收传入的city
            //将传入的city赋值给当前对象#app的形参city
            this.city = city;//此处this指当前对象#app
            //调用searchWeather搜索天气预报信息方法,搜索当前城市名称对应的天气预报信息
            this.searchWeather();
        }
    }
})

2.天知道案例.html(部分重点,用{{}}渲染数据到页面,查看结构)

【注意:在引入main.js之前,引入vue.jsaxios.min.js

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <title>天知道</title>
  <link rel="stylesheet" href="css/reset.css" />
  <link rel="stylesheet" href="css/index.css" />
</head>

<body>
  <div class="wrap" id="app">
    <div class="search_form">
      <div class="logo"><img src="img/logo.png" alt="logo" /></div>
      <div class="form_group">
        <!-- @keyup.enter="searchWeather"指 当键盘的Enter回车键弹起,执行searchWeather事件 -->
        <!-- v-model="city"指 用v-model双向绑定数据:获取文本框输入的城市名称,去city数据 -->
        <input type="text" v-model="city" @keyup.enter="searchWeather" class="input_txt" placeholder="请输入查询的天气" />
        <button class="input_sub" @click="searchWeather">
          搜 索
        </button>
      </div>
      <div class="hotkey">
        <!-- @click="changeCity('城市名称')"点击下面的城市名称,调用changeCity方法 -->
        <a href="javascript:;" @click="changeCity('北京')">北京</a>
        <a href="javascript:;" @click="changeCity('上海')">上海</a>
        <a href="javascript:;" @click="changeCity('广州')">广州</a>
        <a href="javascript:;" @click="changeCity('深圳')">深圳</a>
      </div>
    </div>
    <ul class="weather_list">
      <!-- v-for="item in weatherList"遍历 天气预备信息列表weatherList数组里的每一个数据item -->
      <li v-for="item in weatherList">
        <!--{{item.wea}} 渲染天气信息 -->
        <div class="info_type"><span class="iconfont">{{item.wea}}</span></div>
        <div class="info_temp">
          <!--{{item.tem2}} 渲染低温信息 -->
          <b>{{item.tem2}}</b>
          ~
          <!--{{item.tem1}} 渲染高温信息 -->
          <b>{{item.tem1}}</b>
        </div>
        <!--{{item.day}} 渲染日期信息 -->
        <div class="info_date"><span>{{item.day}}</span></div>
      </li>
    </ul>
  </div>
  <!-- Vue开发环境版本,包含了有帮助的命令行警告 -->
  <script src="../vue.js"></script>
  <!-- axios文件 -->
  <script src="../axios.min.js"></script>
  <!-- 自己的js -->
  <script src="./js/main.js"></script>
</body>

</html>

3.vue.js(辅助作用)

 因为该文件内容太多,请前往该网址(Vue官网)下载 

安装 — Vue.js

安装Vue的方法 /获取vue.js文件的方法: 

4.axios.min.js(辅助作用)

(1)可以用axios在线网址【要连网】

 <!-- 官网提供的 axios 在线地址 -->
  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

(2)也可以下载axios.min.js本地文件:

 去github下载本地文件 网址GitHub - axios/axios: Promise based HTTP client for the browser and node.js 

解压axios-1.x文件夹:

 

此处使用里面的axios.min.js

5.reset.css(辅助作用)

body,ul,h1,h2,h3,h4,h5,h6{
    margin: 0;
    padding: 0;
}
h1,h2,h3,h4,h5,h6{
    font-size:100%;
    font-weight:normal;
}
a{
    text-decoration:none;
}
ul{
    list-style:none;
}
img{
    border:0px;
}

/* 清除浮动,解决margin-top塌陷 */
.clearfix:before,.clearfix:after{
    content:'';
    display:table;    
}
.clearfix:after{
    clear:both;
}
.clearfix{
    zoom:1;
}

.fl{
    float:left;
}
.fr{
    float:right;
}

6.index.css(辅助作用)

body{
    font-family:'Microsoft YaHei';   
}
.wrap{
    position: fixed;
    left:0;
    top:0;
    width:100%;
    height:100%;
    /* background: radial-gradient(#f3fbfe, #e4f5fd, #8fd5f4); */
    /* background:#8fd5f4; */
    /* background: linear-gradient(#6bc6ee, #fff); */
    background:#fff;

}
.search_form{
    width:640px;
    margin:100px auto 0;
}
.logo img{
    display:block;
    margin:0 auto;
}
.form_group{
    width:640px;
    height:40px;
    margin-top:45px;
}
.input_txt{
   width:538px;
   height:38px;
   padding:0px;
   float:left;
   border:1px solid #41a1cb;
   outline:none;
   text-indent:10px;
}

.input_sub{
    width:100px;
    height:40px;
    border:0px;
    float: left;
    background-color: #41a1cb;
    color:#fff;
    font-size:16px;
    outline:none;
    cursor: pointer;
    position: relative;
}
.input_sub.loading::before{
    content:'';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: url('../img/loading.gif');
}

.hotkey{
    margin:3px 0 0 2px;
}

.hotkey a{
    font-size:14px;
    color:#666;
    padding-right:15px;
}
.weather_list{
    height:200px;
    text-align:center;
    margin-top:50px;
    font-size:0px;
}
.weather_list li{
    display:inline-block;
    width:140px;
    height:200px;
    padding:0 10px;
    overflow: hidden;
    position: relative;
    background:url('../img/line.png') right center no-repeat;
    background-size: 1px 130px;
}

.weather_list li:last-child{
    background:none;
}

/* .weather_list .col02{
    background-color: rgba(65, 165, 158, 0.8);
}
.weather_list .col03{
    background-color: rgba(94, 194, 237, 0.8);
}
.weather_list .col04{
    background-color: rgba(69, 137, 176, 0.8);
}
.weather_list .col05{
    background-color: rgba(118, 113, 223, 0.8);
} */


.info_date{
    width:100%;
    height:40px;
    line-height:40px;
    color:#999;
    font-size:14px;
    left:0px;    
    bottom:0px;    
    margin-top: 15px;
}
.info_date b{
    float: left;
    margin-left:15px;
}

.info_type span{
    color:#fda252;
    font-size:30px;
    line-height:80px;
}
.info_temp{
    font-size:14px;  
    color:#fda252;
}
.info_temp b{
    font-size:13px;
}
.tem .iconfont {
    font-size: 50px;
  }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

环形链表问题

文章目录环形链表问题1.环形链表题干思路延申问题总结2. 环形链表 II题干思路环形链表问题 环形链表就是一个链表没有结束的位置&#xff0c;链表的最后一个节点它会指向链表中的某一个节点形成一个环。 拿力扣的两到题目来看 1.环形链表 题干 给你一个链表的头节点 head …

JavaScript JSON解析

最近在uniapp中遇到了一个bug&#xff0c;排查后是json解析的问题。对uniapp开发比较熟悉的&#xff0c;应该会知道uni.navigateTo 这个API方法。这是官方提供用于跳转页面的方法。 有时候我们在跳转页面时会想传递一些参数&#xff0c;通常采用这样的方式 navigateTo(url, r…

oauth2.0--基础--6.1--SSO的实现原理

oauth2.0–基础–6.1–SSO的实现原理 1、什么是SSO 1.1、概念 在一个 多系统共存 的环境下&#xff0c;用户在一处登录后&#xff0c;就不用在其他系统中登录&#xff0c;就可以访问其他系统的资源。用户环境 浏览器&#xff1a;只能同一个浏览器&#xff0c;不会出现A浏览器…

zabbix部署【各模块超详细】

目录 安装zabbix 部署zabbix 配置zabbix 1. 修改语言 2. 监控linux端 3. 修改中文乱码 报警功能 报警音报警 邮件报警 脚本报警 邮件通知内容 图形模块 创建图形 创建聚合图形 percona mysql模板 nginx模板 克隆主机 网络发现 自动注册 主被动模式 &#x1f341;如果对你有帮助…

Handsontable复制列标题内容的功能

Handsontable复制列标题内容的功能 添加了通过使用3个新的上下文菜单选项复制列标题内容的功能&#xff1a;“使用标题复制”、“使用组标题复制”和“仅复制标题”。 添加了4个用于以编程方式复制列标题的新API方法&#xff1a;“copyCellsOnly()”、“copyWithColumnHeaders(…

vscode jupyter配置远程服务器开发

背景说明&#xff1a;本地vscode中使用jupyter编写本地python代码很方便&#xff0c;各种快捷键用的飞起。但是要做线上大数据分析时。在集群环境中搭建一个jupyter。使用网页端编写程序非常不习惯&#xff0c;所以想到能不能将线上的jupyter接口开出来&#xff0c;使用vscode远…

js-有关时间

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date 有关Date 返回格式 Sun Oct 10 2021 00:00:00 GMT0800 (中国标准时间) new Date() 无参数 获取当前时间new Date(value) 传入时间戳 传入一个时间戳 一个 Unix 时间戳&#xff08;U…

JVM运行流程/运行时数据区

JVM运行流程 程序在执行之前先要把 java代码 转换成 字节码文件 (.class文件), JVM 首先需要把字节码通过一定的方式 类加载器 (ClassLoader) 把文件加载到内存中 运行时数据区 (Runtime Data Area) , 而字节码文件是 JVM 的一套指令集规范, 并不能直接交给底层操作系统去执行…

【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)

一、Hive简介 Hive起源于Facebook&#xff0c;Facebook公司有着大量的日志数据&#xff0c;而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架&#xff0c;可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发&#xff0c;但对于其他语言使用…

Anaconda为虚拟环境安装第三方库与Spyder等软件的方法

本文介绍在Anaconda中&#xff0c;为Python的虚拟环境安装第三方库与Spyder等配套软件的方法。 在文章Anaconda中Python虚拟环境的创建、使用与删除&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/128334614&#xff09;中&#xff0c;我们介绍了在Anac…

提前做好网络安全分析,运维真轻松(二)

背景 某汽车总部已部署NetInside流量分析系统&#xff0c;使用流量分析系统提供实时和历史原始流量。汽车配件电子图册系统是某汽车集团的重要业务系统。本次分析重点针对汽车配件电子图册系统进行预见性分析&#xff0c;以供安全取证、性能分析、网络质量监测以及深层网络分析…

FRP搭建内网穿透

前言 内网穿透方式很多&#xff0c;可以用公网IP进行端口映射&#xff0c;DDNS等。现在我有个云服务器&#xff0c;使用它做中转作为内网穿透的工具。 可以在这个网址了解下原理基础&#xff1a;内网穿透工具的原理与开发实战 FRP内网穿透 FRP是一个内网穿透的反向代理应用…

电压放大器工作原理及特点是什么

很多人虽然经常使用电压放大器&#xff0c;但是对于电压放大器的工作原理以及特点是什么都不清楚&#xff0c;下面就来为大家讲解。 什么是电压放大器&#xff1f; 电压放大器是一种能够增加信号电压的装置。对于弱信号&#xff0c;通常采用多级放大级联方式分直接耦合、阻容耦…

关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述

近期我国迎来了cov海啸&#xff0c;其实我也不知道我羊了没有&#xff0c;但并没有什么不舒服同时因为我没有测&#xff0c;那自然是没有羊&#xff0c;或者是薛定谔的羊。 近年另外一块工作的综述&#xff0c;这篇科普的同时&#xff0c;也会包含部分有价值的信息。 一. 摘要…

【面试题】 面试官:你如何实现大文件上传

大厂面试题分享 面试题库 前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 一、问题分析 如果将大文件一次性上传&#xff0c;会发生什么&#xff1f;想必都遇到过在一个大文件上传、转发等操作时&#xff0c;由…

如果公司线上系统突然宕机了,怎么才能确保MQ消息不丢失?

V-xin&#xff1a;ruyuanhadeng获得600页原创精品文章汇总PDF 一、写在前面 之前写过一篇文章《项目里接入了MQ消息中间件以后&#xff0c;我摸鱼的时间更长了~》&#xff0c;我们用一个简单易懂的电商场景给大家引入说明了一个消息中间件的使用场景。 同时&#xff0c;我们还…

考研英语|传统文化英语高频词汇

目录​​​​​​​ 一. 节日名称 二. 相关节日活动 三. 传统饮食 四. 传统建筑 五. 文学艺术 六. 四大发明 七. 新四大发明 一. 节日名称 1. 春节&#xff1a;Chinese New Years Day / Chinese Lunar New Year / the Spring Festival 2. 除夕&#xff1a;New Years E…

Vue2.0开发之——Vue组件-样式冲突(35)

一 概述 scoped的使用及底层原理使用deep修改子组件中的样式 二 scoped的使用及底层原理 2.1 组件之间的样式冲突问题(修改Left.vue中的h3属性&#xff0c;Right也被修改) 默认情况下&#xff0c;写在 .vue 组件中的样式会全局生效&#xff0c;因此很容易造成多个组件之间的样…

kubelet源码分析 syncLoopIteration(二) plegCh、syncCh

kubelet源码分析 syncLoopIteration&#xff08;二&#xff09; plegCh 上一篇&#xff1a;kubelet源码分析 syncLoopIteration&#xff08;一&#xff09; configCh 上一篇说了configCh管道的作用&#xff0c;这一篇说一下plegCh管道。这个管道主要是监听容器运行时状态的&…

搭建Python环境

搭建Python环境 文章目录搭建Python环境需要安装的环境&#xff1a;安装Python1&#xff09;找到官网2&#xff09;找到下载页面3&#xff09;双击安装包4&#xff09;运行 hello world安装 PyCharm1&#xff09;找到官方网站2&#xff09;找到下载页面3&#xff09;双击安装包…