Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Analyse der Verwendung von Axios und Vue zur Implementierung einer einfachen Wetterabfrage

Eine kurze Analyse der Verwendung von Axios und Vue zur Implementierung einer einfachen Wetterabfrage

青灯夜游
青灯夜游nach vorne
2023-02-22 19:34:001982Durchsuche

Wie verwende ich Axios und Vue, um eine einfache Wetterabfrage zu implementieren? Der folgende Artikel stellt Ihnen vor, wie Sie eine einfache Wetterabfrage mit vue+axios implementieren. Ich hoffe, er wird Ihnen hilfreich sein!

Eine kurze Analyse der Verwendung von Axios und Vue zur Implementierung einer einfachen Wetterabfrage

Schauen wir uns zunächst die Darstellungen an. Das Prinzip ist sehr einfach, nur der Aufruf der Schnittstelle, die Darstellung der Daten und das Layout der Schnittstelle Sie können sehen, dass nach Eingabe des korrekten Stadtnamens die Abfrage lautet: Zeigt das Wetter für die nächsten vier Tage und die gesamten sechs Tage von gestern und heute an. Wenn Sie einen falschen Namen eingeben, werden Sie dazu aufgefordert und das Eingabefeld wird geleert [Verwandte Empfehlungen: vuejs-Video-Tutorial

,

Web-Front-End-EntwicklungEine kurze Analyse der Verwendung von Axios und Vue zur Implementierung einer einfachen Wetterabfrage]

一.Ressourceneinführung:

1 Da es sich um ein Vue-Projekt handelt, müssen wir Vue vorstellen, offizielle Website: Vue offizielle Website, wir verwenden die CDN-Methode zum Importieren:
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
2. Verwenden Sie axios, um Datenanfragen zu senden, axios offizielle Website

axios

, wir werden auch die cdn-Methode verwenden, um Folgendes einzuführen:

<!-- axios -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
3 Teil zur Vervollständigung des Schnittstellenstils und des Eingabeaufforderungsteils. Offizielle Website:

elementUI

Wir verwenden die vue2.x-Version:

2. Implementierung:

1.HTML:

Zuerst gestalten wir die Benutzeroberfläche mit der Suchleiste oben und dem Ergebnisanzeigeteil unten:

<!-- 引入样式 -->
<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>

2.CSS:

Wir alle wissen, dass CSS die Stilebene ist Um die Schnittstelle zu verschönern, führen wir das folgende Stildesign durch:

 <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>

3.js:

Nachdem das Schnittstellenlayout fertiggestellt ist, sollten wir mit dem js-Logikteil fortfahren: 1. Erstes Build-Vue, das Montagepunkte und Datenspeicherung erfordert:

* {
    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;}
2. Vorgänge, die beim Klicken auf die Abfrageschaltfläche ausgeführt werden:

Drei. Detaillierter Code:

index.html

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

      btn() {
      //判断输入框是否为空
            if (this.city == &#39;&#39;) {
                this.$message({
                    message: &#39;请输入城市名&#39;,
                    type: &#39;error&#39;
                });
            } else {
            //axios进行请求的擦擦送
                axios.get(&#39;http://wthrcdn.etouch.cn/weather_mini?city=&#39; + this.city).then(res => {
                //返回状态正常
                    if (res.status == 200) {
                        console.log(res.data)
                        //如果查询城市状态异常
                        if (res.data.desc == "invilad-citykey") {
                            this.$message({
                                message: &#39;请输入正确的城市名&#39;,
                                type: &#39;error&#39;
                            });
                            //输入框置空
                            this.city = &#39;&#39;
                        } else {
                            this.$message({
                                message: `共查找到 ${(res.data.data.forecast).length+1} 条数据`,
                                type: &#39;success&#39;
                            });
                            //成功时候显示查询到的数值
                            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: &#39;服务异常,请稍后重试&#39;,
                        type: &#39;error&#39;
                    });
                })
            }
        }
  • index.js
<!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>
Vier. Beispiel:

(Lernvideo-Sharing: vuejs Einführungs-Tutorial, Einfaches Programmiervideo )

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Verwendung von Axios und Vue zur Implementierung einer einfachen Wetterabfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen