【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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 是一个专注于歌词…