【vue学习】6.天气app-天知道

2020-12-18 11:14:29 浏览数 (1)

【vue学习】6.天气app-天知道

vue页面

代码语言:javascript复制
<!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">
          <input
            type="text"
            @keyup.enter="searchWeather"
            v-model="city"
            class="input_txt"
            placeholder="请输入查询的天气"
          />
          <button class="input_sub"  @click="searchWeather">
            搜 索
          </button>
        </div>
        <div class="hotkey">
          <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">
        <li v-for="item in weatherList">
          <div class="info_type"><span class="iconfont">{{item.type}}</span></div>
          <div class="info_temp">
            <b>{{item.low}}</b>
            ~
            <b>{{item.high}}</b>
          </div>
          <div class="info_date"><span>{{item.date}}</span></div>
        </li>
      </ul>
    </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>
    <!-- 自己的js -->
    <script src="./js/main.js"></script>
  </body>
</html>

script文件

代码语言:javascript复制
/*
  请求地址:http://wthrcdn.etouch.cn/weather_mini
  请求方法:get
  请求参数:city(城市名)
  响应内容:天气信息

  1. 点击回车
  2. 查询数据
  3. 渲染数据
  */
 var app = new Vue({
     el:"#app",
     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){
                console.log(err);
            })
         },
         changeCity:function(city){
            this.city = city;
            this.searchWeather();
         }
     }
 })

效果展示

0 人点赞