利用axios调用接口,vue获取和绑定数据
Enter事件查询,还有热键查询
<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>Document</title>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app" class="wrap">
<div class="search_form">
<div class="logo"><img src="../vue/img/01.png" alt="logo" style="width: 200px;"></div>
<div class="form_group">
<input type="text" @keyup.enter='searchWeather' v-model="city" class="input_txt"
placeholder="请输入从查询的城市">
<button class="input_sub">搜 索</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>
<ul class="weather_list">
<li v-for="(item, index) in weatherList" :key="index">
<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>
</div>
<script>
/*
天气接口
请求地址:http://wthrcdn.etouch.cn/weather_mini
请求方法:get
请求参数:city
响应内容:天气信息
*/
// 1.点击回车
// 2.查询数据
// 3.渲染数据
const app = new Vue({
el: '#app',
data: {
city: '',
weatherList: [],
},
methods: {
searchWeather: function (city) {
const that = this;
// console.log('weather');
// 调用接口
axios.get('http://wthrcdn.etouch.cn/weather_mini?city=' + this.city)
.then(function (response) {
// console.log(response);
that.weatherList = response.data.data.forecast;
// console.log(that.weatherList);
})
.catch(function (error) {
console.log(error);
})
},
changeCity:function(city){
this.city = city;
this.searchWeather();
}
}
})
</script>
</body>