iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何利用axios和vue实现简易天气查询
  • 114
分享到

如何利用axios和vue实现简易天气查询

2023-07-05 05:07:48 114人浏览 安东尼
摘要

这篇文章主要讲解了“如何利用axiOS和Vue实现简易天气查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用axios和vue实现简易天气查询”吧!我们先来看一下效果图,原理很简单就

这篇文章主要讲解了“如何利用axiOSVue实现简易天气查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用axios和vue实现简易天气查询”吧!

我们先来看一下效果图,原理很简单就是接口的调用以及数据的呈现,界面的布局而已

如何利用axios和vue实现简易天气查询

通过如上我们可以看到输入正确的城市名称后会查询出未来四天以及昨天和今天总共六天的天气,输入不正确的名称时会进行提示,并且清空输入栏。

一.资源引入:

因为是vue项目所以我们需要引入vue,官网:vue官网,我们使用cdn方式进行引入:

<!-- 开发环境版本,包含了有帮助的命令行警告 --><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

使用axios进行数据请求的发送,axios官网axios,同样我们将使用cdn方式引入:

<!-- axios --><script src="Https://unpkg.com/axios/dist/axios.min.js"></script>

界面样式以及提示部分我们需要elementUI部分来完成,官网:elementUI我们使用的是vue2.x版本:

<!-- 引入样式 --><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.CSS"><!-- 引入组件库 --><script src="https://unpkg.com/element-ui/lib/index.js"></script>

二.实现:

1.HTML:

首先我们进行界面的布局,顶部为搜索栏,下面为结果展示部分:

 <div id="app">        <div class="head">            <el-input v-model="city" style="width: 60%;" placeholder="请输入城市名"></el-input>            <el-button type="primary" @click="btn">查询</el-button>            <p v-if="show" style="display: block;margin-top: -50x;">您查找的城市为:<span>{{nowcity}}</span> ,现在温度为:<span>{{wendu}}<sup>。</sup></span>,感冒情况:<span>{{ganmao}}</span></p>        </div>        <div class="bottom">            <div v-if="show" class="seeday">            </div>        </div> </div>

2.CSS:

众所周知css为样式层,为了界面的美化,我们进行如下样式设计:

* {    margin: 0;    padding: 0;    box-sizing: border-box;}ul>li {    list-style: none;}#app {    width: 900px;    height: 700px;    position: absolute;    top: 50%;    left: 50%;    transfORM: translate(-50%, -50%);    box-shadow: 1px 1px 15px #dfdfdf;}.head {    width: 100%;    height: 20%;    line-height: 70px;    text-align: center;}.head p span {    font-weight: 400;    font-size: 18px;}.bottom {    width: 100%;    height: 80%;    overflow: auto;}.seeday {    width: 300px;    height: 200px;    box-shadow: 1px 1px 15px #dfdfdf;    display: inline-block;    margin-left: 70px;    margin-top: 20px;    margin-bottom: 20px;}.seeday span {    display: inline-block;    width: 100%;    height: 50px;    border-bottom: 1px solid #000;    text-align: center;    font-size: 20px;    font-weight: 600;    line-height: 50px;}.seeday ul {    margin-left: 10px;}.seeday ul>li {    width: 100%;    height: 30px;}

3.js:

界面布局完成那么我们就应该进行js逻辑部分的操作了:

首先搭建vue,需要进行挂载点以及我们需要的数据存储:

var vue = new Vue({    // 挂载点    el: '#app',    data() {        return {            // 收入框            city: '',            // 存储近几天以及今天的天气            list: [],            // 昨天的天气            yesterday: [],            // 是否显示            show: false,            // 当前搜索的城市            nowcity: '',            // 现在的温度            wendu: '',            // 感冒情况            ganmao: ''        }    },    })

点击查询按钮时候进行的操作:

      btn() {      //判断输入框是否为空            if (this.city == '') {                this.$message({                    message: '请输入城市名',                    type: 'error'                });            } else {            //axios进行请求的擦擦送                axios.get('http://wthrcdn.etouch.cn/weather_mini?city=' + this.city).then(res => {                //返回状态正常                    if (res.status == 200) {                        console.log(res.data)                        //如果查询城市状态异常                        if (res.data.desc == "invilad-citykey") {                            this.$message({                                message: '请输入正确的城市名',                                type: 'error'                            });                            //输入框置空                            this.city = ''                        } else {                            this.$message({                                message: `共查找到 ${(res.data.data.forecast).length+1} 条数据`,                                type: 'success'                            });                            //成功时候显示查询到的数值                            this.show = true                            this.nowcity = res.data.data.city                            this.wendu = res.data.data.wendu                            this.ganmao = res.data.data.ganmao                            this.yesterday = res.data.data.yesterday                            this.list = res.data.data.forecast                        }                    }                    //请求发送异常                }).catch(err => {                    this.$message({                        message: '服务异常,请稍后重试',                        type: 'error'                    });                })            }        }

三.详细代码:

<!DOCTYPE html><html><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>    <!-- 引入自定义的css -->    <link rel="stylesheet" href="./index.css"></head><body>    <div id="app">        <div>            <el-input v-model="city" style="width: 60%;" placeholder="请输入城市名"></el-input>            <el-button type="primary" @click="btn">查询</el-button>            <p v-if="show" style="display: block;margin-top: -50x;">您查找的城市为:<span>{{nowcity}}</span> ,现在温度为:<span>{{wendu}}<sup>。</sup></span>,感冒情况:<span>{{ganmao}}</span></p>        </div>        <div>            <div v-if="show">                <span>{{yesterday.date}}</span>                <ul>                    <li>风力:{{yesterday.fl}}</li>                    <li>风向:{{yesterday.fx}}</li>                    <li>高温:{{yesterday.high}}</li>                    <li>低温:{{yesterday.low}}</li>                    <li>天气:{{yesterday.type}}</li>                </ul>            </div>            <div v-for="(item,index) in list" :key="index">                <span>{{item.date}}</span>                <ul>                    <li>风力:{{item.fengli}}</li>                    <li>风向:{{item.fengxiang}}</li>                    <li>高温:{{item.high}}</li>                    <li>低温:{{item.low}}</li>                    <li>天气:{{item.type}}</li>                </ul>            </div>        </div>    </div>    <!-- 开发环境版本,包含了有帮助的命令行警告 -->    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>    <!-- axios -->    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>    <!-- 引入样式 -->    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">    <!-- 引入组件库 -->    <script src="https://unpkg.com/element-ui/lib/index.js"></script>    <!-- 引入自定义的js -->    <script src="./index.js"></script></body></html>

  • index.css

* {    margin: 0;    padding: 0;    box-sizing: border-box;}ul>li {    list-style: none;}#app {    width: 900px;    height: 700px;    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%, -50%);    box-shadow: 1px 1px 15px #dfdfdf;}.head {    width: 100%;    height: 20%;    line-height: 70px;    text-align: center;}.head p span {    font-weight: 400;    font-size: 18px;}.bottom {    width: 100%;    height: 80%;    overflow: auto;}.seeday {    width: 300px;    height: 200px;    box-shadow: 1px 1px 15px #dfdfdf;    display: inline-block;    margin-left: 70px;    margin-top: 20px;    margin-bottom: 20px;}.seeday span {    display: inline-block;    width: 100%;    height: 50px;    border-bottom: 1px solid #000;    text-align: center;    font-size: 20px;    font-weight: 600;    line-height: 50px;}.seeday ul {    margin-left: 10px;}.seeday ul>li {    width: 100%;    height: 30px;}

  • index.js

var vue = new Vue({    // 挂载点    el: '#app',    data() {        return {            // 收入框            city: '',            // 存储近几天以及今天的天气            list: [],            // 昨天的天气            yesterday: [],            // 是否显示            show: false,            // 当前搜索的城市            nowcity: '',            // 现在的温度            wendu: '',            // 感冒情况            ganmao: ''        }    },    methods: {        btn() {            if (this.city == '') {                this.$message({                    message: '请输入城市名',                    type: 'error'                });            } else {                axios.get('http://wthrcdn.etouch.cn/weather_mini?city=' + this.city).then(res => {                    if (res.status == 200) {                        console.log(res.data)                        if (res.data.desc == "invilad-citykey") {                            this.$message({                                message: '请输入正确的城市名',                                type: 'error'                            });                            this.city = ''                        } else {                            this.$message({                                message: `共查找到 ${(res.data.data.forecast).length+1} 条数据`,                                type: 'success'                            });                            this.show = true                            this.nowcity = res.data.data.city                            this.wendu = res.data.data.wendu                            this.ganmao = res.data.data.ganmao                            this.yesterday = res.data.data.yesterday                            this.list = res.data.data.forecast                        }                    }                }).catch(err => {                    this.$message({                        message: '服务异常,请稍后重试',                        type: 'error'                    });                })            }        }    }});

四.实例:

如何利用axios和vue实现简易天气查询

感谢各位的阅读,以上就是“如何利用axios和vue实现简易天气查询”的内容了,经过本文的学习后,相信大家对如何利用axios和vue实现简易天气查询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何利用axios和vue实现简易天气查询

本文链接: https://www.lsjlt.com/news/349755.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用axios和vue实现简易天气查询
    这篇文章主要讲解了“如何利用axios和vue实现简易天气查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用axios和vue实现简易天气查询”吧!我们先来看一下效果图,原理很简单就...
    99+
    2023-07-05
  • 浅析怎么利用axios和vue实现简易天气查询
    怎么利用axios和vue实现简易天气查询?下面本篇文章给大家介绍一下vue+axios实现简易天气查询的方法,希望对大家有所帮助!我们先来看一下效果图,原理很简单就是接口的调用以及数据的呈现,界面的布局而已通过如上我们可以看到输入正确的城...
    99+
    2023-05-14
    天气查询 axios Vue
  • 如何用python实现简易聊天室
    本篇内容主要讲解“如何用python实现简易聊天室”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用python实现简易聊天室”吧!1.功能:类似qq群聊功能有人进入聊天室需要输入姓名,姓名不...
    99+
    2023-06-20
  • 如何通过C++编写一个简单的天气查询程序?
    在这个数字化时代,天气预报已经成为了我们生活中的重要组成部分之一。通过天气预报,我们能够了解到未来天气的变化,从而做好相应的准备。而现今,天气查询程序也已经成为了我们日常生活中的重要工具之一。如果您想学习如何通过编程语言来创建一个简单的天气...
    99+
    2023-11-03
    简单程序 天气查询 C++编写
  • Qt如何实现简易QQ聊天界面
    这篇文章主要介绍了Qt如何实现简易QQ聊天界面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Qt如何实现简易QQ聊天界面文章都会有所收获,下面我们一起来看看吧。myDialog.h#ifndef MA...
    99+
    2023-07-02
  • C++如何实现简易UDP网络聊天室
    小编给大家分享一下C++如何实现简易UDP网络聊天室,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!工程名:NetSrvNetSrv.cpp//服务器端#inclu...
    99+
    2023-06-20
  • vue如何实现简易的弹出框
    目录vue实现弹出框1.Template2.script => data 中定义3.script => methods 中定义关闭方法4.样式vue实现弹窗选择1.创建一...
    99+
    2024-04-02
  • 怎么在Python和tkinter界面实现一个历史天气查询功能
    本篇文章给大家分享的是有关怎么在Python和tkinter界面实现一个历史天气查询功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python可以做什么Python是一种编...
    99+
    2023-06-06
  • Linux下Select多路复用如何实现简易聊天室
    这篇文章主要介绍“Linux下Select多路复用如何实现简易聊天室”,在日常操作中,相信很多人在Linux下Select多路复用如何实现简易聊天室问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下S...
    99+
    2023-06-21
  • 如何使用python实现定时报天气
    小编给大家分享一下如何使用python实现定时报天气,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.分析爬取目标这里就不爬取股票的信息,我来爬一个天气预报的信息...
    99+
    2023-06-25
  • Vue如何实现简易跑马灯效果
    本文小编为大家详细介绍“Vue如何实现简易跑马灯效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue如何实现简易跑马灯效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Vue跑马灯效果:1.分析a.点击&q...
    99+
    2023-06-30
  • Vue如何实现模糊查询
    这篇文章主要介绍Vue如何实现模糊查询,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Vue实现模糊查询通过watch和computed实现Vue实现模糊查询计算方法能实现的侦听方法也能够实现,但推荐使用计算方法,应为...
    99+
    2023-06-20
  • Vue分页查询如何实现
    这篇文章主要介绍“Vue分页查询如何实现”,在日常操作中,相信很多人在Vue分页查询如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue分页查询如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-06
  • 如何利用C++实现一个简单的航班查询系统?
    如何利用C ++实现一个简单的航班查询系统?航班查询系统是一个广泛应用于航空公司和旅行社等行业的软件系统。通过这个系统,用户可以查询航班的相关信息,包括航班号、出发时间、到达时间、航班公司等。利用C++语言,我们可以实现一个简单而功能完善的...
    99+
    2023-11-02
    C++ 系统实现 航班查询
  • vue如何实现简易选项卡功能
    这篇文章主要讲解了“vue如何实现简易选项卡功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现简易选项卡功能”吧!1. 效果: 实现发布评论功能 实现评论列表的展示 使用标签页...
    99+
    2023-07-02
  • 如何利用Python实现简易的音频播放器
    目录1. 需要用到的Python库2. 简易UI设计3. 功能模块实现3.1 选择音频文件进行播放3.2 控制音频播放、暂停3.3 控制音频音量大小3.4 播放器初始化等细节4. 运...
    99+
    2024-04-02
  • 如何使用WebSocket+SpringBoot+Vue搭建简易网页聊天室
    今天小编给大家分享一下如何使用WebSocket+SpringBoot+Vue搭建简易网页聊天室的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2023-07-06
  • 如何利用CSS3实现气泡效果
    这篇文章主要讲解了“如何利用CSS3实现气泡效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用CSS3实现气泡效果”吧!首先定义一个CSS Code...
    99+
    2024-04-02
  • 如何利用SQL和Python分别实现人流量查询
    这篇文章主要讲解了“如何利用SQL和Python分别实现人流量查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用SQL和Python分别实现人流量查...
    99+
    2024-04-02
  • 如何使用HttpClient和HtmlParser实现简易爬虫
    这篇文章给大家分享的是有关如何使用HttpClient和HtmlParser实现简易爬虫的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   HttpClient 简介   H...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作