超链接与多媒体
超链接与多媒体是互联网之所以成为“网”的基石——超链接a让页面互相连接多媒体img/video/audio让内容鲜活起来。但在Vue 3 Vite环境下这两类标签的写法会迎来巨大的割裂“跳转”和“资源加载路径”的处理方式跟纯静态HTML有天壤之别。我把它们拆成“原生铁律”和“Vue/Vite 实战改造”两大块特别是路径问题这是新手 100% 会踩的坑。1. 超链接a连接万物的“血管”1原生 HTML 铁律href跳转目标URL、锚点#top、邮箱mailto:、电话tel:。target_blank在新标签页打开。relnoopener必须搭配target_blank使用否则新页面可以通过window.opener操控你的原页面存在安全风险。!-- 原生安全写法 -- a hrefhttps://example.com target_blank relnoopener noreferrer外部链接/a !-- 锚点跳转页面内滚动 -- a href#section2跳转到第二节/a2Vue 3 实战a与RouterLink的决裂这是 Vue 新手最大的误区。在 Vue 单页应用SPA中外部链接如跳去百度、B站依然用原生a加target_blank和rel。内部页面跳转如从首页跳去 /about绝对不要用a href/about因为href会触发浏览器硬刷新导致 Vue 状态丢失、页面闪白。必须使用 Vue Router 提供的RouterLink组件。template !-- 1. 站外跳转用原生 a 标签 -- a hrefhttps://www.baidu.com target_blank relnoopener去百度/a !-- 2. 站内跳转用 RouterLink不刷新页面 -- RouterLink to/about关于我们/RouterLink !-- 带参数的跳转 -- RouterLink :to{ name: user, params: { id: 123 } }用户详情/RouterLink !-- 3. 代替锚点滚动不用 a href#top用 click 操作 DOM -- button clickscrollToTop回到顶部/button /template script setup langts // Vue 中锚点滚动建议用原生 JS不依赖 a const scrollToTop () { window.scrollTo({ top: 0, behavior: smooth }); }; /script2. 图像img最常用的多媒体1原生 HTML 铁律src图片地址。alt这是无障碍的灵魂图片加载失败时显示文字屏幕阅读器也会朗读它。绝对不能省。loadinglazy原生懒加载让首屏速度起飞。img srcphoto.jpg alt描述图片内容的文字 loadinglazy /2Vue 3 Vite 中的“路径生死劫”重点在 Vite 项目中图片放在/public和/src/assets里写法完全不同存放位置引用方式示例代码原理/public绝对路径根路径img src/logo.png altLogoVite 在构建时完全不处理直接复制到 dist 根目录。适合永远不会变名的文件如 favicon。/src/assets必须import或new URL见下方代码块Vite 会基于哈希值重新命名文件如logo.a1b2c.png并优化。绝对不能用字符串写死路径正确的 Vue 3 TS 写法针对/src/assetstemplate !-- 方式一静态 import最推荐TS 类型提示友好 -- img :srclogoImg alt网站Logo / !-- 方式二动态图片根据条件渲染不同图 -- img :srcgetImageUrl(avatar) alt头像 / !-- 方式三v-for 循环渲染图片列表 -- img v-foritem in imageList :keyitem.id :srcitem.url :altitem.name / /template script setup langts // 方式一直接导入Vite 会返回处理后的最终路径字符串 import logoImg from /assets/logo.png; // 方式二动态导入适用于文件名不确定的场景 const getImageUrl (name: string) { // 注意Vite 中必须使用 new URL import.meta.url 才能让 Vite 在构建时发现这些图片 return new URL(../assets/images/${name}.png, import.meta.url).href; }; // 方式三后端返回的图片 URL 列表直接 :src 绑定即可无需处理 const imageList reactive([ { id: 1, name: 封面图, url: https://api.example.com/cover.jpg } ]); /script致命错误预警绝对不要写img src/assets/logo.png浏览器根本不知道是什么鬼直接报 404。3. 视频video与音频audio1原生 HTML 铁律controls显示播放/暂停/音量等原生控件必须加否则用户无法操控。poster视频封面图视频加载前展示。autoplay自动播放现代浏览器大多禁止带声音的自动播放需要配合muted。source提供多种格式视频浏览器选第一个能播的。video controls postercover.jpg width600 source srcmovie.mp4 typevideo/mp4 source srcmovie.webm typevideo/webm 您的浏览器不支持视频播放。 !-- 降级提示 -- /video2Vue 3 实战借助ref实现程序化控制在 Vue 中除了绑定动态src你经常需要点击按钮控制播放/暂停。这时要用模板引用ref直接操作原生 DOM 方法。template !-- 绑定动态视频地址 -- video refvideoRef :srcvideoSrc controls poster/poster.jpg/video button clickplayVideo播放/button button clickpauseVideo暂停/button /template script setup langts import { ref } from vue; // 1. 模板引用名称必须与 template 中的 ref 一致 const videoRef refHTMLVideoElement | null(null); const videoSrc ref(https://example.com/sample.mp4); // 2. 调用原生 API const playVideo () { videoRef.value?.play(); // ?. 是 TS 可选链防止 videoRef 为空报错 }; const pauseVideo () { videoRef.value?.pause(); }; /script音频audio用法与视频完全一致只是没有画面。在 Vue 中做背景音乐、通知提示音同样用ref操控play()和pause()。4. 嵌入式内容iframe嵌入第三方页面用于嵌入地图、B站视频、第三方网页。template !-- 原生写法宽高、允许全屏 -- iframe srchttps://www.bilibili.com/.../player.html width800 height450 allowfullscreen loadinglazy titleB站视频标题 !-- 无障碍必备 -- /iframe /template5. Vue 3 Vite 终极避坑清单总结场景错误的直觉正确的做法站内跳转a href/aboutRouterLink to/about加载/src/assets图片img src/assets/img.pngimport img from /assets/img.png:srcimg动态图片路径:src/assets/${name}.pngnew URL(../assets/${name}.png, import.meta.url).href视频/音频自动播放加autoplay就行必须加muted否则 Chrome 会拦截target_blank直接写不管必须加relnoopener noreferrer安全漏洞图片忘了写alt无所谓能看见不行SEO 和无障碍直接扣分写上alt纯装饰图也行。6. 给初学者的“感性认知”超链接是让用户“走”出去的通道。在 Vue 里站内走 RouterLink不刷新站外走a新窗口。图片/视频是让内容“流”进来的资源。在 Vite 里资源路径不再是简单的字符串而是经过构建工具处理的“模块”。如果你接下来想学Vue Router 的编程式导航router.push()或者Vite 中如何给图片做压缩/转 WebP 优化可以直接告诉我我继续往下拆。

相关新闻

Filebeat课程

Filebeat课程

一、FileBeat 基础概述1. 定位与作用Filebeat 是 Elastic 官方推出的轻量级日志采集器,基于 Go 语言开发,无 Java 依赖、资源占用极低,专门用于采集本地文件日志,常作为 ELK/EFK 架构的日志输入端。核心定位:日志轻采集…

2026/10/19 2:53:35 阅读更多 →
素数计数函数误差建模与收敛分析:数据科学介入数论的实践范式

素数计数函数误差建模与收敛分析:数据科学介入数论的实践范式

1. 项目概述:这不是“破解素数密码”,而是用数据科学重新丈量数学的边界 “Original Research to Predict Prime Numbers — Error Convergence Using Data Science”——这个标题一上来就带着一股不容忽视的张力。它没说“发现新公式”,也没…

2026/10/17 6:54:56 阅读更多 →
鸿蒙 ArkTS 实战:QR Business Card 从系统能力到状态管理完整解析

鸿蒙 ArkTS 实战:QR Business Card 从系统能力到状态管理完整解析

鸿蒙 ArkTS 实战:QR Business Card 从系统能力到状态管理完整解析 前言 QR Business Card 是一个面向 二维码名片 的鸿蒙 ArkTS 单页工具。项目通过记录列表、统计卡片、权限开关和状态切换,把系统能力相关场景整理成可操作的移动端页面。 它服务于 管…

2026/10/17 6:55:09 阅读更多 →

最新新闻

Agent祛魅:大模型应用开发的工程真相与避坑指南

Agent祛魅:大模型应用开发的工程真相与避坑指南

我先说一个可能被喷的结论:把 Agent 当成“什么都能干的 AI”,是一切踩坑的开端。研一入学那阵,我也被各类演示视频里“一键搞定所有事”的 Agent 震住了,直到花一周时间把某头部 AI 实验室的技术博客从头翻到尾,心态直…

2026/10/19 14:51:56 阅读更多 →
从祛魅到工程:大模型Agent的底层机制与关键组件拆解

从祛魅到工程:大模型Agent的底层机制与关键组件拆解

电科研一 | 读完那家头部 AI 实验室的技术博客,我对 Agent 祛魅了作为一个电子信息方向研一学生,这段时间我把某头部 AI 实验室的技术博客从头到尾翻了好几遍。读之前,我对 Agent 是带着某种“膜拜感”的,觉得它像是一种近乎于生命…

2026/10/19 14:51:56 阅读更多 →
图表设计规范:把架构图当代码一样维护

图表设计规范:把架构图当代码一样维护

1. 从“能画图”到“图表像同一个系统”:diagram-design项目是怎么来的第一次意识到“画图”也需要专门立项,是因为一次不太顺利的架构评审。会议室里投出了同一个系统的三张部署图,画法、措辞、颗粒度各不相同:一张是拖拽工具手拉…

2026/10/19 14:51:56 阅读更多 →
PCL点云体素法向量估计:原理、实现与参数调优

PCL点云体素法向量估计:原理、实现与参数调优

1. 为什么我最终选了体素法向量这条“慢”路子做点云处理的人,迟早都会碰到法向量估计这一步。不管是做配准、分割、曲面重建,还是给点云上色、做渲染,法向量都是绕不开的基础几何量。我以前做某个项目,需要给几十万级的点云计算法…

2026/10/19 14:51:56 阅读更多 →
社会网络分析实战:中心性、社群发现与结构洞的Python实现

社会网络分析实战:中心性、社群发现与结构洞的Python实现

1. 从一张关系图说起:社会网络分析到底在解决什么问题第一次接触社会网络分析的人,脑子里冒出来的画面往往是那种密密麻麻的连线图——一堆圆点被各种线条连来连去,看着挺唬人,但真要说它能干什么,很多人是懵的。我刚开…

2026/10/19 14:51:56 阅读更多 →
Artcraft:如何将审美直觉转化为可复用的创作工作流

Artcraft:如何将审美直觉转化为可复用的创作工作流

1. 从“artcraft”这个名字说起:它到底想解决什么问题 第一次看到“artcraft”这个词,我脑子里蹦出来的不是某个具体工具,而是一种很朴素的组合感——art(艺术、审美、表达)加上 craft(手艺、工艺、打磨&am…

2026/10/19 14:50:48 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →