Vue

vue使用axios天气API练手教程

2020-09-23  本文已影响0人  似朝朝我心

效果图展示:


首先我们得知道自己所在城市的天气编码,查看自己所在城市的天气编码详情网址查询:https://blog.csdn.net/ck784101777/article/details/103383890?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase

城市天气API接口:http://wthrcdn.etouch.cn/weather_mini?citykey=101280601(citykey等号后面的101280601是深圳所在地的天气编码)
citykey=输入自己所在城市的编码

vue官方提供的axios类型网址:https://www.bootcdn.cn/axios/
有4个axiosCDN引入网址,第一个和第二个后缀是amd网址不要选,第三个和第四个可以用,第三个额是完整的axios,第四个是min的。

引入vue提供CDN的axios(我这给大家备好了,直接拿去用)
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.1.0/axios.js"></script>

建议大家在body开头下一行就引入CDN,因为浏览器的机制是自上而下编译的,放其他位置可能有坑

下面是完整代码,大家可以参考

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 
</head>
<style>
    li {
        list-style: none;
        float: left;
        padding: 20px;
    }
    ul li > div {
        border:1px solid #e5e6
    }
</style>

<body>
    <!-- 引入vue提供CDN的axios -->
    <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.1.0/axios.js"></script>
    <div id="app">
        <h2>天气搜索--{{city}}</h2>
        <input v-model.trim="city" @keyup.enter="onEnter" type="text" placeholder="请输入你要查询的城市天气">
        <ul>
            <li v-for="item in list">
                <div>日期:{{item.date}}</div>              
                <div>最高温:{{item.high}}</div>
                <div>最低温:{{item.low}}</div>
                <div>风力:{{item.fengli}}</div>
                <div>风向:{{item.fengxiang}}</div>
                <div>雨势:{{item.type}}</div>
            </li>
        </ul>
    </div>
    <script>
        const app = new Vue({
            el: '#app',
            data() {
                return {
                    city: "",
                    list: []
                }
            },
            methods: {
                onEnter() {
                    //axios.get()方法发送API请求,获取数据
                    axios.get('http://wthrcdn.etouch.cn/weather_mini?citykey=101280601')
                        .then( (res) => {
                            console.log(res.data);
                            //把获取到的数据给到list数组里面进行遍历
                            this.list = res.data.forecast;
                            console.log(this.list)
                        })
                            //是否发送错误请求
                        .catch( (err) => {
                            console.log(err);
                        });
                }

            },
        })
    </script>
</body>
</html>

标注
v-model.trim="city" 用于去掉输入框内首尾空格
@keyup.enter="onEnter" 绑定键盘按下回车事件
axios.get()请求过程详细代码(不过一般都建议使用用箭头函数简写,提高效率)

  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

response返回的是.json格式的数据,而我们要取的数据一般都会存储在data里面,我们想了解data对象里面的每一层数据只需要用用.号打开就行,像这样

console.log(response.data.forecast);//我们就找到了有关天气未来5天的详情。

其他之于post和get方式请求详情网址:http://www.axios-js.com/zh-cn/docs/

上一篇下一篇

猜你喜欢

热点阅读