美文网首页Vue
vue使用axios天气API练手教程

vue使用axios天气API练手教程

作者: 似朝朝我心 | 来源:发表于2020-09-23 08:12 被阅读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/

    相关文章

      网友评论

        本文标题:vue使用axios天气API练手教程

        本文链接:https://www.haomeiwen.com/subject/ieigyktx.html