【vue3+和风天气插件】城市实时天气

本文介绍了如何在Vue3项目中利用和风天气插件实现城市实时天气显示,包括前提准备、组件使用、模板示例以及如何更改可视化效果,强调了插件的便捷性和低操作难度。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

【vue3+和风天气插件】城市实时天气


前言

使用vue3+和风插件,可以轻松实现自定义化城市实时天气小组件,再也不用手撕代码了!
保姆级教程,安心使用:


一、前提准备

1.登录和风插件开发平台
2.自定义组件
在这里插入图片描述
3.点击生成代码
在这里插入图片描述

二、vue3中使用

1.在自己的组件中使用

注意:不能完全复制和风的代码,需要自己改下。下面是我自己写好的模板,可直接套用 ↓
代码如下(示例):

<template>
  <div class="box">
    <div id="he-plugin-standard"></div>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  created() {
    window.WIDGET = {
      CONFIG: {
        layout: "1",
        width: 450,
        height: 150,
        background: "1",
        dataColor: "FFFFFF",
        borderRadius: "5",
        key: "04c1df5a350e448cb2b2728f1b435f88",
      },
    };
    let script = document.createElement("script");
    script.src =
      "https://widget.qweather.net/standard/static/js/he-standard-common.js?v=2.0";
    document.getElementsByTagName("head")[0].appendChild(script);
  },
  methods: {},
};
</script>

<style  scoped>
</style>

2.展示效果

在这里插入图片描述

3.更改可视化效果

在和风天气开发平台上改变样式,以后把更新的代码的这部分替换掉即可。
在这里插入图片描述在这里插入图片描述

总结

在做项目时使用插件真的很方便,操作难度系数很低!

<think> 我们被要求查找除和风天气插件外适合Vue天气插件。根据引用,用户已经知道和风天气,现在需要其他选择。 从引用[1]中,用户提到了中国天气网(https://cj.weather.com.cn/plugin/index)也提供天气插件。因此,中国天气插件是一个备选。 此外,我们可以考虑其他提供API的天气服务,比如OpenWeatherMap、WeatherAPI等,但这些通常需要自己封装Vue组件。 因此,我们可以推荐: 1. 中国天气插件(官方提供插件,类似和风天气,可以直接嵌入) 2. 使用其他天气API自行封装Vue组件(例如OpenWeatherMap、AccuWeather等) 具体回答如下: 除了和风天气插件外,以下是一些适合Vue天气插件或服务: 1. **中国天气插件** 中国天气网(Weather China)也提供了天气插件,类似于和风天气,可以直接在Vue项目中嵌入。 官网:https://cj.weather.com.cn/plugin/index 使用方法:与和风天气类似,生成代码后嵌入Vue组件中。 示例代码(参考和风天气的嵌入方式,但具体代码需在中国天气官网生成): ```vue <template> <div id="weather-plugin"></div> </template> <script> export default { mounted() { // 这里插入中国天气官网生成的代码 } } </script> ``` 2. **使用天气API自行封装Vue组件** 如果希望更自由地定制天气展示,可以使用天气API自行封装Vue组件。以下是一些流行的天气API: - **OpenWeatherMap**:提供全球天气数据,包括实时天气、预报等。有免费套餐。 官网:https://openweathermap.org/api 示例:使用`axios`获取数据并展示。 ```vue <template> <div> <div v-if="weather"> {{ weather.name }}: {{ weather.main.temp }}°C </div> </div> </template> <script> import axios from &#39;axios&#39;; export default { data() { return { weather: null }; }, async mounted() { const response = await axios.get(&#39;https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY&units=metric&#39;); this.weather = response.data; } }; </script> ``` - **WeatherAPI**:提供实时天气天气预报、历史天气等。 官网:https://www.weatherapi.com/ 示例:与OpenWeatherMap类似,通过API请求数据。 - **AccuWeather**:提供丰富的天气数据,但免费额度有限。 官网:https://developer.accuweather.com/ 3. **第三方Vue天气组件** 在npm上也有一些第三方封装的Vue天气组件,例如: - `vue-weather-widget`:一个使用OpenWeatherMap API的Vue天气组件。 安装:`npm install vue-weather-widget` 使用示例: ```vue <template> <vue-weather :api-key="yourApiKey" :city="city" /> </template> <script> import VueWeather from &#39;vue-weather-widget&#39;; import &#39;vue-weather-widget/dist/css/vue-weather-widget.css&#39;; export default { components: { VueWeather }, data() { return { yourApiKey: &#39;YOUR_OPENWEATHERMAP_API_KEY&#39;, city: &#39;London&#39; }; } }; </script> ``` 注意:使用API自行封装或使用第三方组件时,都需要注册相应的API服务以获取API Key。 总结:除了和风天气,中国天气插件是另一个可直接嵌入的选择。如果希望更灵活,可以自行封装或使用现有的Vue组件库,结合天气API实现。 §§相关问题§§ 1. 如何申请中国天气插件的使用权限? 2. 使用OpenWeatherMap API时如何获取城市ID? 3. 如何避免在Vue组件中暴露API密钥? </think> 以下是除和风天气外适合Vue天气插件及解决方案,结合引用内容整理: ### 1. **中国天气插件** 官网:https://cj.weather.com.cn/plugin/index 提供多种嵌入式插件,可直接在Vue中使用: ```vue <template> <div id="weather-plugin"></div> </template> <script> export default { mounted() { // 从官网获取生成的代码片段 const script = document.createElement(&#39;script&#39;); script.src = &#39;https://cj.weather.com.cn/plugin/weather/xxx.js&#39;; // 官网生成的专属链接 document.body.appendChild(script); } } </script> ``` 特点:官方维护,支持多种展示样式(如数字时钟式、图形化展示)[^1] --- ### 2. **OpenWeatherMap API + 自定义组件** 官网:https://openweathermap.org/api 可结合Axios自行封装组件: ```vue <template> <div class="weather-card"> <h3>{{ weatherData.name }}</h3> <p>温度: {{ weatherData.main.temp }}°C</p> <p>天气: {{ weatherData.weather[0].description }}</p> </div> </template> <script> import axios from &#39;axios&#39;; export default { data() { return { weatherData: {} } }, async mounted() { const res = await axios.get(&#39;https://api.openweathermap.org/data/2.5/weather&#39;, { params: { q: &#39;Beijing&#39;, appid: &#39;YOUR_API_KEY&#39;, // 注册获取 units: &#39;metric&#39; } }); this.weatherData = res.data; } } </script> ``` 优势:完全自定义UI,支持全球5万+城市[^5] --- ### 3. **第三方Vue天气组件库** - **vue-weather-widget** 安装:`npm install vue-weather-widget` 示例: ```vue <template> <WeatherWidget api-key="YOUR_KEY" latitude="39.9042" longitude="116.4074" /> </template> <script> import { WeatherWidget } from &#39;vue-weather-widget&#39;; export default { components: { WeatherWidget } } </script> ``` 特点:开箱即用,响应式设计 - **vue-weather** 安装:`npm install @bybas/weather-icons-vue` 提供200+天气图标和组件化方案 --- ### 4. **WeatherAPI** 官网:https://www.weatherapi.com/ 提供免费套餐(100万次/月): ```vue <script> export default { methods: { async getWeather() { const res = await axios.get(&#39;https://api.weatherapi.com/v1/forecast.json&#39;, { params: { key: &#39;YOUR_KEY&#39;, q: &#39;Shanghai&#39;, days: 7 } }); console.log(res.data.forecast); } } } </script> ``` --- ### 选择建议: 1. **需要快速嵌入** → 中国天气插件 2. **需要深度定制** → OpenWeatherMap/WeatherAPI + 自定义组件 3. **追求开发效率** → vue-weather-widget等第三方库 4. **免费额度要求** → WeatherAPI(100万次/月)或OpenWeatherMap免费版 > ⚠️ 注意:所有API服务都需要注册获取Key,免费套餐通常有调用限制。自行封装组件时建议通过环境变量管理API密钥[^5]。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值