今天写了一个天气组件效果如下:

实现代码如下:

<template><div><span @click="getLocation" style="cursor: pointer"><span style="color:white;">{{ weatherInfo.area }}</span></span> |<span style="color:white;">{{ weatherInfo.weather }}</span><span style="color:white;font-weight: bold;">{{ weatherInfo.temperature }}°C</span> |<span style="color:white;">{{ weatherInfo.wind_direction }}</span><span style="color:white;">{{ weatherInfo.wind_power }}</span><!-- <img style="width:30px;vertical-align: middle;" :src="weatherInfo.weather_pic"/> --><div v-if="isLoading" class="loading">加载中...</div><div v-if="errorMessage" class="error-message">{{ errorMessage }}</div></div></template><script>
import {onLoad} from 'vue'
import axios from 'axios'
export default {data() {return{weatherInfo: {area: '郑州市',temperature: '34',weather: '多云',weather_pic: 'http://tianqiapi.com/static/img/icon/duoyun.png',wind_direction: '南风',wind_power: '3级',quality: '良'},errorMessage:'',isLoading:false};},created(){console.log('[DEBUG] 组件已挂载');this.getLocation();},methods: {async getLocation() {console.log('GetLocation');try {console.log('[DEBUG] 开始定位');const response = await axios.get('https://restapi.amap.com/v3/ip', {params: { key: 'your gaode api key' }});if (response.data.status === '1') {await this.getWeathData(response.data.city, response.data.adcode);} else {throw new Error(`定位失败: ${response.data.info}`);}} catch (error) {console.error('[ERROR] 定位异常:', error);this.errorMessage = '定位服务不可用';this.isLoading = false;}},async getWeathData(cityName, cityCode) {try {this.isLoading = true;const { data } = await axios.get('https://restapi.amap.com/v3/weather/weatherInfo', {params: {key: 'your gaode api key',city: cityCode,extensions: 'base',output: 'JSON'}});if (data.status === '1' && data.lives?.length > 0) {const weatherData = data.lives[0];// 安全更新数据this.weatherInfo = {area: weatherData.city || cityName,temperature: weatherData.temperature || '--',weather: weatherData.weather || '未知',wind_power: weatherData.windpower ? `${weatherData.windpower}级` : '--',wind_direction: weatherData.winddirection ? `${weatherData.winddirection}风` : '--'};} else {throw new Error(data.info || '天气数据异常');}} catch (error) {console.error('[ERROR] 天气获取失败:', error);this.errorMessage = '天气数据获取失败';// 保留上次有效数据} finally {this.isLoading = false;}}}
}</script><style scoped>span {margin: auto 3px;}.loading {font-size: 14px;color: #409eff;font-weight: bold;}.error-message {color: red;font-weight: bold;margin-top: 10px;}</style>

在使用的页面中引用该组件:

import weather from '@/views/weather/top-weather.vue'export default{components:{weather},
}

在页面嵌入该组件:

<div class="weather-layout"><weather/></div>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912195.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912195.shtml
英文地址,请注明出处:http://en.pswp.cn/news/912195.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5 手写卷积函数

5 手写卷积函数 背景介绍滑动窗口的方式代码问题 矩阵乘法的方式原理代码结果 效果对比对比代码日志结果 一些思考 背景 从现在开始各种手写篇章&#xff0c;先从最经典的卷积开始 介绍 对于卷积层的具体操作&#xff0c;我这里就不在具体说卷积具体是什么东西了。 对于手写…

vue3+element-plus,实现两个表格同步滚动

需求&#xff1a;现在需要两个表格&#xff0c;为了方便对比左右的数据&#xff0c;需要其中一边的表格滚动时&#xff0c;另一边的表格也跟着一起滚动&#xff0c;并且保持滚动位置的一致性。具体如下图所示。 实现步骤&#xff1a; 确保两个表格的宽度一致&#xff1a;如果两…

Mysql架构

思考&#xff1a;Mysql需要重点学习什么&#xff1a; 索引&#xff1a;索引存储结构、索引优化......事务&#xff1a;锁机制与隔离级别、日志、集群架构 本文是对Mysql架构进行初步学习 1、Mysql链接 Mysql监听器是长连接 BIO(阻塞同步IO调用)&#xff0c; 不是NIO. 为什么…

使用deepseek制作“喝什么奶茶”随机抽签小网页

教程很简单&#xff0c;如下操作 1. 新建文本文档&#xff0c;命名为奶茶.txt 2. 打开deepseek&#xff0c;发送下面这段提示词&#xff1a;用html5帮我生成一个喝什么奶茶的网页&#xff0c;点击按钮随机生成奶茶品牌等&#xff0c;包括喜茶等众多常见的奶茶品牌如果不满意还…

WOE值:风险建模中的“证据权重”量化术——从似然比理论到FICO评分卡实践

WOE值&#xff08;Weight of Evidence&#xff0c;证据权重&#xff09; 是信用评分和风险建模中用于量化特征分箱对目标变量的预测能力的核心指标。 本文由「大千AI助手」原创发布&#xff0c;专注用真话讲AI&#xff0c;回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关…

js递归性能优化

JavaScript 递归性能优化 递归是编程中强大的技术&#xff0c;但在 JavaScript 中如果不注意优化可能会导致性能问题甚至栈溢出。以下是几种优化递归性能的方法&#xff1a; 1. 尾调用优化 (Tail Call Optimization, TCO) ES6 引入了尾调用优化&#xff0c;但只在严格模式下…

vue界面增加自定义水印 js

vue整个界面增加自定义水印 需求&#xff1a;领导想要增加自定义水印 好不容易调完&#xff0c;还是想记录一下,在.vue界面编写 export default {mounted() {this.$nextTick(() > {this.addWatermark()})},methods: {// 关键&#xff1a;添加水印// 动态添加水印addWaterm…

Go开发工程师-Golang基础知识篇

开篇 我们尝试从2个方面来进行介绍&#xff1a; 1. 社招实际面试问题 2. 问题涉及的基础点梳理 社招面试题 米哈游 1. Go 里面使用 Map 时应注意问题和数据结构 2. Map 扩容是怎么做的&#xff1f; 3. Map 的 panic 能被 recover 掉吗&#xff1f;了解 panic 和 recover …

能否仅用两台服务器实现集群的高可用性??

我们将问题分为两部分来回答&#xff1a;一是使用 Redis 或 Hazelcast 确保数据一致性后是否仍需 Oracle 或 MySQL 等数据库&#xff1b;二是能否仅用两台服务器实现集群的高可用性。以下是详细探讨&#xff1a; 1. 使用 Redis 或 Hazelcast 确保数据一致性后&#xff0c;还需要…

spring-ai-alibaba DashScopeCloudStore自动装配问题

问题 在学习spring-ai-alibaba时&#xff0c;发现1.0.0.2版本在自动装配DashScopeCloudStore时&#xff0c;会报如下错误&#xff1a; Field dashScopeCloudStore in com.example.spring_ai_alibaba_examples.examples.SpringAiAlibabaExample01 required a bean of type com…

docker-compose部署nacos

1、docker-compose内容 高版本的nacos使用docker启动&#xff0c;需要将所有的端口放开&#xff0c;仅仅开放8848端口&#xff0c;spring-boot客户端获取nacos配置的时候&#xff0c;可能取到的内容为空。 version: 3# 定义自定义网络&#xff0c;确保服务间通信和外部访问 ne…

CSRF 与 SSRF 的关联与区别

CSRF 与 SSRF 的关联与区别 区别 特性CSRF (跨站请求伪造)SSRF (服务器端请求伪造)攻击方向客户端 → 目标网站服务器 → 内部/外部资源攻击目标利用用户身份执行非预期操作利用服务器访问内部资源或发起对外请求受害者已认证的用户存在漏洞的服务器利用条件用户必须已登录目…

Payload-SDK自动升级

Payload-SDK自动升级 前言 自动升级旨在通过无人机更新负载上的软件&#xff0c;包括不限于&#xff1a;Payload-SDK应用、配置文件等。对于文件的传输&#xff0c;大疆的Payload-SDK给我们提供了两种方式&#xff1a;使用FTP协议和使用大疆自研的DCFTP。我们实现的自动升级是…

第五代移动通信新型调制及非正交多址传输技术研究与设计

第五代移动通信新型调制及非正交多址传输技术研究与设计 一、新型调制技术研究与实现 1. FBMC (滤波器组多载波) 调制实现 import numpy as np import matplotlib.pyplot as plt from scipy.fft import fft, ifft, fftshift from scipy.signal import get_window

AI 智能运维,重塑大型企业软件运维:从自动化到智能化的进阶实践​

一、引言&#xff1a;企业软件运维的智能化转型浪潮​ 在数字化转型加速的背景下&#xff0c;大型企业软件架构日益复杂&#xff0c;微服务、多云环境、分布式系统的普及导致传统运维模式面临效率瓶颈。AI 技术的渗透催生了智能运维&#xff08;AIOps&#xff09;的落地&#x…

Apache CXF安装详细教程(Windows)

本章教程,主要介绍,如何在Windows上安装Apache CXF,JDK版本是使用的1.8. 一、下载Apache CXF Apache CXF(Apache Celtix Fireworks)是一个开源的 Web 服务框架,用于 构建和开发服务端与客户端的 Web 服务应用程序。它支持多种 Web 服务标准,尤其是 SOAP(基于 XML 的协议…

逆向入门(22)程序逆向篇-TraceMe

界面看起来很普通 也没有壳&#xff0c;直接搜索字符串找到关键代码处 但是发现这些都是赋值&#xff0c;并没有实现跳转相关的函数。这里通过给弹窗函数下断点&#xff0c;追一下返回函数来找触发点。 再次点击check&#xff0c;触发断点&#xff0c;接着按ctrlF9返回到函数…

中文PDF解析准确率排名

市面上的文档解析工具种类各异&#xff0c;包括更适用于论文解析的&#xff0c;专精于表格数据提取的&#xff0c;针对手写体优化的&#xff0c;适用于技术文档的&#xff0c;擅长处理复杂多语言混排文档的&#xff0c;专门处理政府招标文档表格的&#xff0c;以及擅长金融类表…

Conformal LEC:官方学习教程

相关阅读 Conformal LEChttps://blog.csdn.net/weixin_45791458/category_12993839.html?spm1001.2014.3001.5482 本文是对Conformal Equivalence Checking User Guide中附录实验的翻译&#xff08;有删改&#xff09;&#xff0c;实验文件可见安装目录Conformal/share/cfm/l…

【Torch】nn.Embedding算法详解

1. 定义 nn.Embedding 是 PyTorch 中的 查表式嵌入层&#xff08;lookup‐table&#xff09;&#xff0c;用于将离散的整数索引&#xff08;如词 ID、实体 ID、离散特征类别等&#xff09;映射到一个连续的、可训练的低维向量空间。它通过维护一个形状为 (num_embeddings, emb…