Vue3专题 - 条件渲染

发布时间:2026/9/27 13:03:23

Vue3专题 - 条件渲染
大家好我是Java1234_小锋老师最近更新 《一天学会 Vue3 Vite element-plus UI框架 视频教程》专辑感谢大家支持。本课程主要介绍和讲解 Vue3框架Vite构建工具以及element-plus UI框架。Vue3核心知识介绍Vite构建工具使用以及element-plus UI框架的基础组件配置组件Form 表单组件Data 数据展示组件Navigation导航组件Feedback反馈组件Container布局组件介绍和使用。视频教程课件源码打包下载 链接https://pan.baidu.com/s/1o-zRfndo1HHrS_uFroOiCw?pwd1234提取码1234具体位置 - 第四阶段富客户端技术里面Vue3专题 - 条件渲染条件渲染用来根据数据的真假决定某块 DOM 要不要显示。Vue3 提供v-if/v-else-if/v-else和v-show两套写法。适合登录后显示用户信息、空列表提示、切换 Tab 内容、权限控制可见区域等场景。1. 为什么需要条件渲染页面上经常有「有时显示、有时隐藏」的内容。如果用原生 JS 手动改display或增删节点逻辑会散落各处。用指令绑定响应式数据数据一变界面自动切换!-- 不推荐到处手写显示隐藏 -- p v-ifisLogin已登录/p !-- 比手动操作 DOM 更清晰 --2. v-if / v-else-if / v-else2.1 基本用法v-if的表达式为真时才会渲染该元素为假则不会创建到 DOM 里。script setup /** * v-if 基础 Demo * 根据登录状态显示不同内容 */ import { ref } from vue const isLogin ref(false) /** 切换登录状态 */ function toggleLogin() { isLogin.value !isLogin.value } /script template p v-ifisLogin欢迎回来/p p v-else请先登录/p button clicktoggleLogin {{ isLogin ? 退出 : 登录 }} /button /template要点v-else必须紧挨在带v-if或v-else-if的元素后面条件为假时对应节点不会存在于 DOM不是隐藏是不创建运行截图2.2 多分支v-else-if类似if / else if / elsescript setup /** * v-else-if 多分支 Demo * 根据分数显示等级 */ import { ref } from vue const score ref(75) /script template p 分数 input v-model.numberscore typenumber / /p p v-ifscore 90优秀/p p v-else-ifscore 60及格/p p v-else不及格/p /template运行截图2.3 用template包一组元素想一次性控制多个相邻标签时用template包起来template本身不会渲染成真实标签template v-ifisLogin h3个人中心/h3 p昵称小明/p p角色普通用户/p /template3. v-showv-show始终会渲染元素只是通过 CSS 的display切换显示/隐藏script setup /** * v-show Demo * 点击按钮显示 / 隐藏提示框 */ import { ref } from vue const visible ref(true) /script template p v-showvisible这段文字用 v-show 控制/p button clickvisible !visible切换显示/button /template运行截图注意v-show没有v-else也不能用在template上。4. v-if 和 v-show 怎么选v-ifv-show原理条件为假时不创建 DOM始终在 DOM改display切换开销较大创建/销毁较小只改样式初始开销条件为假时更轻无论真假都会渲染适用很少切换、条件决定是否存在频繁切换显示隐藏简单记偶尔切换、或根本不需要这块 DOM→ 用v-if经常点来点去切换显示→ 用v-show5. 入门综合 Demo一个小面板根据用户类型显示不同欢迎语并用v-show控制提示条。script setup /** * 条件渲染综合 Demo * - v-if / v-else-if / v-else按角色显示内容 * - v-show控制提示条显隐 */ import { ref } from vue /** 角色guest | user | admin */ const role ref(guest) /** 是否显示顶部提示 */ const showTip ref(true) /** 切换角色 */ function setRole(next) { role.value next } /script template p v-showshowTip classtip 提示点击下方按钮切换角色观察内容变化 /p button clickshowTip !showTip {{ showTip ? 隐藏提示 : 显示提示 }} /button hr / div v-ifrole admin h3管理员面板/h3 p你可以管理用户和查看统计数据。/p /div div v-else-ifrole user h3普通用户/h3 p欢迎回来可以浏览内容和修改个人资料。/p /div div v-else h3游客模式/h3 p请先登录后使用完整功能。/p /div div classactions button clicksetRole(guest)游客/button button clicksetRole(user)用户/button button clicksetRole(admin)管理员/button /div /template style .tip { background: #e6f4ff; padding: 8px 12px; border-radius: 6px; } .actions { margin-top: 12px; } .actions button { margin-right: 8px; } /style运行效果预期初始显示蓝色提示条内容为「游客模式」点「用户 / 管理员」中间区域换成对应文案v-if分支切换点「隐藏提示」提示条消失但 DOM 仍在v-show运行截图

相关新闻

【免费】人脸识别 智能考勤系统(深度学习+OpenCV DNN+FastAPI+Vue3) 锋哥原创出品,必属精品

【免费】人脸识别 智能考勤系统(深度学习+OpenCV DNN+FastAPI+Vue3) 锋哥原创出品,必属精品

2026/8/23 5:39:26

大家好,我是Java1234_小锋老师,分享一套锋哥原创的人脸识别 智能考勤系统(深度学习OpenCV DNNFastAPIVue3) 项目介绍 随着深度学习与计算机视觉技术的快速发展,人脸识别逐渐成为身份认证与智能考勤领域的重要手段。传统考勤方式普遍存在代打…

以太网MAC层详解:从帧结构到VLAN、STP与链路聚合

以太网MAC层详解:从帧结构到VLAN、STP与链路聚合

2026/8/23 16:04:36

1. 项目概述:从“物理线缆”到“数据邻居”如果你把家里的网线插上电脑,或者用Wi-Fi连上路由器,感觉网络通了,这背后其实已经跨越了好几层复杂的协议栈。我们今天要聊的“以太网的 MAC 层”,就是这栋协议大厦里&#x…

终极OBS多平台直播解决方案:obs-multi-rtmp插件完整指南

终极OBS多平台直播解决方案:obs-multi-rtmp插件完整指南

2026/9/26 4:39:01

终极OBS多平台直播解决方案:obs-multi-rtmp插件完整指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 你是否曾为同时在不同平台直播而烦恼?是否因为需要运行多…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/26 19:14:12

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

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

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/27 1:30:37

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/27 1:30:35

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/27 1:30:34

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

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/26 16:36:51

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/26 13:57:22

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…