vue3 + tailwindcss + 和风天气api 完成一个天气组件

前言

菜鸡小前端终于找到新工作啦,对于我来说又是一个充满未知的新开始,不过现公司的规模注定好多事情不能像以前一样有前辈们帮我顶住了,所以我要加油努力提升自己💪!

刚入职第一天就给了我一版设计稿,要我尽快把delay的进度赶上,感叹之前gap了那么久,都不知道从何下手了,于是乎,我决定先从设计稿里的天气组件入手。但是就这个组件,花了我两天研究才写出来,菜鸡哭泣😭,我会尽量详细地把踩的坑记录下来,希望不要再踩了!

由于需要快速开发,我选择了vue3和tailwindcss来完成,项目代码最后会给链接。

准备工作

需要天气数据,所以选择了国内的和风天气(其实还有很多,比如国外的openWeatherMap也挺好的),和风天气是目前国内天气api提供数据较为全面的一个平台,且大部分api免费使用,所以很适合用来开发。

1、首先注册一个和风天气的账号,并进入控制台

和风天气官网:https://dev.qweather.com/
控制台长这样:(八块八是开发时调api失败了以为和风天气要收费才充的,可以不用充值,不过某些api的确是要收费的)不用充钱的,只是我以为api要收费了才充了几块

2、进行开发者认证(虽然不知道对调用api有无影响,但是我还是先认证了一下)

进入设置>用户信息 就能找到开发者认证,有个人和企业两种,自己根据需要选择,审核还是比较快的在这里插入图片描述

3、创建项目key

这是最重要的步骤,也是我踩坑的一个地方,我当初使用和风天气的时候最先发现有一个插件页面,如下图:在这里插入图片描述
创建插件会生成一些代码,代码中就会包含一个key,但是你千万别以为这就是生成key了,这个key除了在插件里使用,根本无法调用和风天气的api,会报403,所以真正的步骤也需要在控制台完成。

进入项目管理,点击右上角的创建项目,根据需求创建项目,这样生成的key才是能够调用和风天气api的!!!在这里插入图片描述

4、使用注意事项

当准备工作就绪了,一定要去读一读官方的开发文档,里面会有很多注意事项,例如接口最终上线需要在https协议下才能请求,各种错误状态码的含义,我认为重点在“最佳实践”中都有提到。
开发文档:https://dev.qweather.com/docs/

5、如何开发

api的参数基本上都必须要上述提到的key以及位置信息,所以项目中封装好自己的请求拦截器是很有必要的,获取位置信息则可以使用h5的navigator.geolocation.getCurrentPosition的方法。因为写样式不太好啊,所以使用了tailwindcss,真的超好用,强烈推荐!

项目代码

https://github.com/SicaWang/weather_of_qweather

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,我可以为您提供一个基于和天气APIVue天气预报示例。 首先,您需要在和天气官网注册并创建一个应用,以获取访问API的key。 然后,您可以创建一个Vue项目,并安装axios和vue-axios插件来进行API请求。 接下来,您可以在Vue组件中编写代码来获取天气数据并渲染到页面上。以下是示例代码: ```html <template> <div class="weather"> <h1>{{ city }}天气预报</h1> <div v-if="loading">加载中...</div> <div v-else> <div>当前温度:{{ temperature }}℃</div> <div>天气状况:{{ weather }}</div> <div>向:{{ windDirection }}</div> <div>力:{{ windLevel }}</div> <div>湿度:{{ humidity }}%</div> </div> </div> </template> <script> import axios from 'axios'; import VueAxios from 'vue-axios'; export default { data() { return { city: '北京', loading: true, temperature: null, weather: null, windDirection: null, windLevel: null, humidity: null } }, mounted() { this.getWeather(); }, methods: { getWeather() { const key = 'YOUR_API_KEY'; const url = `https://free-api.heweather.net/s6/weather/now?location=${this.city}&key=${key}`; this.$http.get(url).then(response => { const data = response.data.HeWeather6[0].now; this.temperature = data.tmp; this.weather = data.cond_txt; this.windDirection = data.wind_dir; this.windLevel = data.wind_sc; this.humidity = data.hum; this.loading = false; }).catch(error => { console.log(error); }); } }, plugins: [ VueAxios, axios ] } </script> <style> .weather { text-align: center; } </style> ``` 在上面的代码中,您需要将`YOUR_API_KEY`替换为您的和天气API key,并将`city`设置为您想要获取天气的城市名称。 最后,您可以在Vue根实例中引入该组件并将其渲染到页面上。 ```html <template> <div id="app"> <weather></weather> </div> </template> <script> import Weather from './components/Weather.vue'; export default { components: { Weather } } </script> ``` 这样,您就可以在Vue中使用和天气API来获取天气预报了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SicaWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值