vue網頁中的一個天氣組件使用高德api

今天寫了一個天氣組件效果如下:

實現代碼如下:

<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…