【2025】使用vue構建一個漂亮的天氣卡片

1. 核心框架:Vue
Vue 以其輕量、易用、響應式數據綁定的特點,非常適合快速構建這類小型界面組件。即使是直接通過 CDN 引入,也能高效開發,降低項目復雜度,無需搭建完整工程化環境 。
2. 網絡請求:Axios
用于發送 HTTP 請求獲取天氣接口數據,它在瀏覽器端使用簡潔,支持 Promise 語法,能方便地和 Vue 結合處理異步數據獲取。
3. CDN 替換
一開始用的 cdn.jsdelivr.net 可能存在訪問不穩定情況,替換為 cdnjs.cloudflare.com,保障資源可靠加載 。

4. 最終效果
在這里插入圖片描述

上代碼, 復制保存為HTML直接打開就可以看到效果

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>天氣卡片</title><style>.weather-card{margin:50px auto;width:300px;background: rgb(213,243,255);
background: linear-gradient(360deg, rgba(213,243,255,1) 0%, rgba(248,253,255,1) 100%);border-radius:8px;padding:16px;box-shadow:0 2px 4px rgba(0,0,0,0.1);font-family:sans-serif}.location{display:flex;align-items:center}.location svg{width:24px;height:24px;margin-right:8px;fill:#fdb813}.temp{font-size:48px;font-weight:bold;margin:8px 0;width:65%}.desc{color:#666;width:35%;text-align:right;margin:15px 0 0}</style>
</head>
<body><div id="app"><div class="weather-card"><div class="location"><svg t="1753281034305" style="width:24px;height: 24px;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8458" width="32" height="32"><path d="M920.25920987 329.59374532a24.69356705 24.69356705 0 0 0-23.87821341-1.63070726l-79.32226019 36.34147603-46.59163593 21.60687116c-0.75711409 3.61085178-1.45598862 7.16346402-2.3295818 10.77431581-25.21772295 102.44335951-200.16931588 315.77481255-220.02900069 339.76950506-9.14360855 11.00727399-22.59694343 32.84710333-36.92387148 32.84710333s-27.72202338-21.83982933-36.86563193-32.84710333c-19.74320572-23.87821341-192.19049822-234.58888693-219.44660526-337.78936053-19.68496619-10.54135763-32.38118697-17.47186349-32.49766606-17.47186348a24.69356705 24.69356705 0 0 0-31.04167743-3.96028906l-87.35931738 54.51221405a24.69356705 24.69356705 0 0 0-11.64790898 21.02447572v428.17713423a24.7518066 24.7518066 0 0 0 35.29316421 22.36398525l228.47373472-113.45063349L628.77028755 931.3247234a24.6353275 24.6353275 0 0 0 23.29581798 0l266.73711572-143.85167594a24.69356705 24.69356705 0 0 0 13.04565806-21.7815898v-415.24795527a24.81004614 24.81004614 0 0 0-11.58966944-20.84975707z" fill="#8a8a8a" p-id="8459"></path><path d="M511.06816728 101.70240606a231.79338878 231.79338878 0 0 0-231.56043059 231.56043059 234.2976892 234.2976892 0 0 0 6.69754767 55.56052585c23.81997387 96.73588411 205.70207265 317.23080117 213.44793212 326.54912835a14.67636532 14.67636532 0 0 0 11.64790898 5.35803814 14.85108396 14.85108396 0 0 0 11.64790898-5.35803814c7.74585947-9.31832718 189.62795825-229.81324424 213.44793213-326.60736789a231.73514923 231.73514923 0 0 0-225.32879929-287.0627169z m0 311.17388849a79.6134579 79.6134579 0 1 1 79.6134579-79.6134579A79.6134579 79.6134579 0 0 1 511.06816728 412.99277364z" fill="#F8D247" p-id="8460"></path></svg><span>{{ city }}</span></div><div style="display: flex;"><div class="temp">{{ temperature }}<span style="font-size:16px;vertical-align: text-top;">°C</span><span style="font-size:16px;float:left;"><img :src="wea_img" style="width:50px; margin: 6px 5px 0 0;"/></span></div><div class="desc">{{ weatherDesc }}<br>濕度 {{ humidity }}</div></div><div style="margin-top:8px; text-align: center;"><a href="javascript:;" @click="viewFull" style="color: #333;text-decoration: none;">查看完整預報</a></div></div></div><script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.7.14/vue.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/axios/1.4.0/axios.min.js"></script><script>new Vue({el: '#app',data: {city: '',temperature: '',weatherDesc: '',humidity: '',isLoading: true},created() {this.fetchWeatherData();},methods: {async fetchWeatherData() {try {// get接口里使用的appid和key請自行前往天氣api注冊const response = await axios.get('http://gfeljm.tianqiapi.com/api?unescape=1&version=v63&appid=55556666&appsecret=12341234');this.city = response.data.city;this.temperature = response.data.tem;this.weatherDesc = response.data.wea;this.wea_img = 'http://dps.tianqiapi.com/static/skin/apple/' + response.data.wea_img + '.png';this.humidity = response.data.humidity;this.isLoading = false;document.title = response.data.city + '天氣卡片'} catch (error) {console.error('獲取天氣數據失敗', error);this.isLoading = false;}},viewFull() {document.location.href='http://tianqiapi.com'}}});</script>
</body></html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90168.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ruby 命令行選項詳解

Ruby 命令行選項詳解 引言 Ruby 是一種廣泛使用的編程語言,它以其簡潔、優雅和強大的功能而聞名。在 Ruby 的使用過程中,命令行界面(CLI)提供了豐富的選項,可以幫助開發者更高效地與 Ruby 環境交互。本文將詳細解析 Ruby 命令行選項,旨在幫助開發者更好地利用這些工具。…

NLP復習

1.文本預處理 分詞,詞性標注,命名實體識別 1.1分詞:jieba jieba.lcut(content,cut_alltrue) 全模式 jieba.lcut(content,cut_allfalse) 精確模式 jieba.lcut_for_search(content) 搜索引擎模式 lcut和cut的區別:cut返回的是一個生成器Generator,lcut返回的是列表 生成器調…

WEB :實戰演練——從零實現一個交互輪播圖(附源碼)

文章目錄 一、輪播圖整體功能規劃二、HTML結構深度解析三、CSS樣式實現細節1. 定位系統詳解2. 顯示/隱藏機制3. 按鈕交互效果實現4. 純CSS箭頭實現5. 指示器&#xff1a;當前位置可視化 四、JavaScript邏輯深入解析1. 核心變量與DOM獲取2. 圖片切換函數&#xff08;核心邏輯&am…

MCP 協議詳細分析一 initialize ping tools/list tools/call

MCP 協議詳細分析一 &#xff08;initialize ping tools/list tools/call) 本節基于 實現一個 java 的mcp client 調用的 一個python 的mcp server 的日志&#xff0c;完整展示一次典型的 MCP Java SDK 通信流程、工具調用、通知機制與日志記錄&#xff0c;僅包含 echo-simple…

SLAM學習資料記錄

ORB_SLAM2 創建自己的數據集&#xff08;還未使用&#xff09; 【SLAM實戰篇】Ubuntu 20.04版本&#xff08;OpenCV版本4.5.3&#xff09;對于ORB-SLAM2安裝運行&#xff0c;代碼編譯&#xff0c;自己的數據集構造_ubuntu20.04 安裝運行orb_slam2算法-CSDN博客 卡爾曼濾波數據…

用Phi-3 Mini微調實現英文到尤達語翻譯

用Phi-3 Mini微調實現英文到尤達語翻譯 引言 本文將帶你快速上手大模型微調實踐——以微軟的Phi-3 Mini 4K Instruct模型為例&#xff0c;教你如何將其微調為一個能把英文翻譯成"尤達語"&#xff08;《星球大戰》中尤達大師的獨特說話風格&#xff09;的模型。這是一…

AI助力,輕松實現人聲分離伴奏提取

親愛的小伙伴們&#xff01;前段時間&#xff0c;有一位同事家的可愛小孩參加了一場英語演講比賽。同事找到我&#xff0c;希望我能幫個忙&#xff0c;把講視頻中的人聲去掉&#xff0c;只提取出其中相應的伴奏。今天&#xff0c;我就來和大家分享一下究竟如何實現從 MP4 視頻中…

第1章第2章筆記

OSI參考模型---開放式系統互聯模型---OSI/RM ISO--->國際標準化組織&#xff1b;特點&#xff1a;先有模型&#xff0c;在又協議。 OSI七層參考模型&#xff1a;應用層 --- 提供網絡服務&#xff1b;自然語言-->編碼表示層 --- 對數據的處理&#xff1b;格式化&#xff0…

圖的BFS和DFS

一&#xff0c;圖的遍歷邏輯1.之前我們學了圖的存儲&#xff0c;可以鄰接表存和鄰接矩陣存。現在我們要學習圖的遍歷操作和樹類似可以分為深度遍歷和廣度遍歷&#xff0c;而深度遍歷也是用遞歸實現&#xff0c;廣度遍歷是用隊列實現2.深度遍歷(DFS)a.確定起點b.找到一條邊按順時…

WWDC 25 給自定義 SwiftUI 視圖穿上“玻璃外衣”:最新 Liquid Glass 皮膚詳解

引子 各位 iOS 足球體育健兒們&#xff0c;且聽我一言&#xff01;想當年在《少林足球》里&#xff0c;阿星一句“做人如果沒夢想&#xff0c;那跟咸魚有什么分別啊&#xff1f;”點燃了多少人的江湖夢。 如今在 SwiftUI 江湖里&#xff0c;Apple 于 WWDC 25 推出的 Liquid Gl…

Day01_C++

01.思維導圖02.方法一&#xff1a;#include <iostream> #include <cstring> #include <iostream> using namespace std; class mystring { private:char* buf;int len;public:mystring(const char* str);void copy(const char* ptr);void copy(mystring ptr)…

C語言學習(days09)

二維數組的定義與特性二維數組的聲明格式為&#xff1a;類型說明符 數組名[表達式1][表達式2];[下標1]表示行索引&#xff0c;[下標2]表示列索引。二維數組可視為由多個一維數組組成&#xff0c;a[0]表示第0行的首地址&#xff08;即一維數組地址&#xff09;a[0][0]表示第0的第…

WIFI路由器長期不重啟,手機連接時提示無IP分配

今天在公司&#xff0c;突然發現手機連不上公司WIFI。每次鏈接&#xff0c;提示無IP分析。我以為是我手機出問題了&#xff0c;想復位一下。后來一想萬一復位還是不靈&#xff0c;怎么辦&#xff1f;同事認為是路由器沒有重啟的原因。于是找到路由器&#xff0c;重啟&#xff0…

【前沿技術動態】【AI總結】RustFS:從 0 到 1 打造下一代分布式對象存儲

目錄1 引言&#xff1a;為什么我們又需要一個新的對象存儲2 RustFS 全景速覽3 技術架構深度拆解3.1 整體拓撲3.2 關鍵數據結構&#xff08;rust 偽代碼&#xff09;3.3 讀寫路徑&#xff08;寫放大 < 1.1&#xff09;4 核心源碼導讀4.1 關鍵函數跟蹤4.2 一段最小可復現示例5…

ImageNet1K數據集的下載解壓與處理

前言 博主因為這個數據集踩了好多坑&#xff0c;浪費了好幾天時間&#xff0c;最近終于找到了高效的辦法&#xff0c;寫此篇文章來記錄具體操作方法&#xff0c;也希望可以幫助到有需要的人。&#xff08;主要是在云服務器是使用&#xff09; 下載數據集 一共下載三個文件&…

OkHttp 與 Room 結合使用:構建高效的 Android 本地緩存策略

前言在現代 Android 應用開發中&#xff0c;網絡請求與本地數據持久化是兩大核心功能。OkHttp 作為強大的網絡請求庫&#xff0c;與 Jetpack Room 持久化庫的結合使用&#xff0c;可以創建高效的數據緩存策略&#xff0c;提升應用性能和用戶體驗。本文將詳細介紹如何將這兩者完…

Nacos中feign.FeignException$BadGateway: [502 Bad Gateway]

Nacos中feign.FeignException$BadGateway: [502 Bad Gateway] 文章目錄Nacos中feign.FeignException$BadGateway: [502 Bad Gateway]背景原因背景 Mac本地運行Nacos微服務項目&#xff0c;調用服務失敗 原因 關閉本地代理clash或者其他&#xff0c;windows沒發現問題&#x…

基于deepseek的LORA微調

LORA微調&#xff1a; 核心是&#xff1a;低秩轉換&#xff0c;減少參數。凍結大部分&#xff0c;調節部分模塊(注意力模塊的Wq&#xff0c;Wk&#xff0c;Wv)。 調整過后得到一個lora.safetensors, 內部記錄了(detail W: 即部分修改的W)。推理使用原權重和lora權重。 具體操…

Linux運維新手的修煉手扎之第22天

Tomcat服務1 java項目部署方式&#xff1a;war包部署、jar包部署、源代碼部署2 Ubuntu環境部署Java - openjdk[熟練]:#安裝軟件rootubuntu24-13:~# apt update; apt list openjdk*rootubuntu24-13:~# apt install openjdk-11-jdk -y#檢測效果rootubuntu24-13:~# whereis javaja…

Python爬蟲實戰:研究Genius庫相關技術

1. 引言 在當今數字化時代,音樂數據的分析與挖掘成為了音樂學、計算機科學等領域的研究熱點。歌詞作為音樂的重要組成部分,蘊含著豐富的情感、文化和社會信息。通過對歌詞數據的分析,可以揭示音樂風格的演變、流行趨勢的變化以及社會情緒的波動等。 Genius 是一個專注于歌詞…