Vue+Axios 实现天气查询

一、页面展示

1、初始页面

2、查询结果展示

二、代码实现

1、html

<!DOCTYPE html>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="tianqi" >
    <div class="row" style="width: 40%;margin: 0px auto;margin-top: 50px;">
        <div class="col-lg-6" style="text-align: center;" >
            <span class="glyphicon glyphicon-cloud" aria-hidden="true"></span>
          <div class="input-group"  style="margin-top: 20px;">
            <input v-model="city" @keyup.enter="searchWeather" type="text" class="form-control" placeholder="Search for...">
            <span class="input-group-btn">
              <button @click="changecity(city)" class="btn btn-default" type="button">查询</button>
            </span>
          </div>
          <!-- /input-group -->
        </div><!-- /.col-lg-6 -->
      </div><!-- /.row -->
    <ul class="weatherlist" style="margin: 0px auto;width: 80%;margin-top: 60px;">
        <li v-for="item in weatherlist" style="float: left;width: 20%;list-style-type:none">
            <span style="font-size: 40px;color: #f8a05d;">{{ item.type }}</span><br>
            <span style="font-size: 10px;color: #f8a05d;">{{ item.low }}~{{ item.high }}</span><br>
            <span>{{ item.date }}</span><br>
        </li>
    </ul>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="./main.js"></script>
</body>
</html>

2、main.js

var tianqi = new Vue({
    el:"#tianqi",
    data:{
        city:"",
        weatherlist:[]
    },
    methods:{
        searchWeather:function(){
            var that = this;
            axios.get("http://wthrcdn.etouch.cn/weather_mini?city="+this.city)
            .then(function(response){
                console.log(response.data.data.forecast)
                that.weatherlist=response.data.data.forecast;
            })
            .catch(function(err){
                alert("城市输入错误")
            })
        },
        changecity:function(cityin){
            this.city=cityin;
            this.searchWeather();
        }
    }
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值