Vue指令-v-if与v-show

Vue指令-v-if与v-show

2026年5月15日·#javawebai/前端基础前端/Vue·475 字 2 分钟
浏览量加载中...
AI 摘要- DeepSeek

v-if通过移除DOM节点控制显示,v-show通过CSS display属性切换可见性

Vue指令-v-if与v-show#

定义#

v-if和v-show都是用于控制元素显示与隐藏的指令,但实现机制不同。v-if通过条件判断创建或移除元素节点,v-show通过CSS的display属性控制显示隐藏。

语法/用法#

v-if指令#

<!-- 基本用法 -->
<span v-if="isVisible">显示内容</span>
<!-- v-else-if链式调用 -->
<span v-if="emp.job === '1'">班主任</span>
<span v-else-if="emp.job === '2'">讲师</span>
<span v-else-if="emp.job === '3'">学工主管</span>
<span v-else-if="emp.job === '4'">教研主管</span>
<span v-else-if="emp.job === '5'">咨询师</span>
<span v-else>其他</span>
<!-- v-else -->
<div v-if="isAdmin">管理员面板</div>
<div v-else>普通用户面板</div>

v-show指令#

<!-- 基本用法 -->
<span v-show="isVisible">显示内容</span>
<!-- 多个条件 -->
<span v-show="emp.job === '1'">班主任</span>
<span v-show="emp.job === '2'">讲师</span>
<span v-show="emp.job === '3'">学工主管</span>
<span v-show="emp.job === '4'">教研主管</span>
<span v-show="emp.job === '5'">咨询师</span>

常见场景#

  1. v-if适用场景:

    • 条件不经常变化
    • 初始渲染条件为false时不需要渲染
    • 需要配合v-else或v-else-if使用
    • 性能要求不高,但需要完全销毁/重建元素
  2. v-show适用场景:

    • 条件频繁切换
    • 初始渲染成本较高
    • 只需要简单的显示/隐藏切换
    • 需要保持元素状态(如表单输入)

注意事项#

  1. 实现机制差异:

    • v-if:条件为false时,元素从DOM中移除
    • v-show:条件为false时,元素通过display: none隐藏
  2. 性能考虑:

    • v-if有更高的切换开销(创建/销毁)
    • v-show有更高的初始渲染开销(总是渲染)
    • 频繁切换用v-show,运行时条件很少改变用v-if
  3. v-else规则:

    • v-else必须紧跟在v-if或v-else-if之后
    • v-else-if必须出现在v-if之后
    • 可以有多个v-else-if
  4. 与v-for一起使用:

    • 不推荐在同一元素上同时使用v-if和v-for
    • 需要时,v-if的优先级更高

相关链接#

评论区

[ 标签 ]
# AI37# AI 编程2# AI工具1# AI绘图1# AI辅助开发2# Ajax7# Apifox1# AstrBot3# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# Cloudflare2# CloudFlare2# CloudFlare-ImgBed3# coc4# CSS10# DeepSeek6# deepseek2# DELETE1# Docker5# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML9# HTTP10# ImageManager1# Java23# java13# JavaScript11# JavaWeb113# JDBC7# JSON2# JUnit1# LangChain25# Linux4# Logback1# Maven17# Muse Spark1# Mybatis1# MyBatis18# MySQL45# MySql1# NapCat1# Node.js1# obsidian2# Obsidian5# OpenCode4# ORM1# PathVariable1# PicGo1# PyCharm1# Python70# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot37# SpringMVC5# SQL2# Streamlit5# Svelte2# TailwindCSS1# Telegram3# Tlias2# Vercel1# vscode2# Vue20# Waline3# Web3# WebDAV1# Web基础6# Web开发6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档10# 写作1# 函数2# 刷步数1# 前端52# 动态1# 动漫1# 包1# 单词2# 博客8# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 后端48# 图床6# 地图1# 备份2# 大模型1# 奇思妙想1# 存储1# 学习方法6# 学校1# 宝塔面板3# 宝宝10# 实战4# 对象1# 导航栏1# 工具2# 布局2# 开发1# 开发工具1# 开发规范1# 开心1# 异常处理1# 影视2# 微信1# 性能优化2# 总结1# 想法15# 感受1# 感悟11# 指南1# 提示词工程2# 插件5# 故障排除1# 效率工具2# 教程10# 数据分析9# 数据库27# 数据结构1# 文件操作2# 斩神1# 日常95# 日志框架1# 朋友圈1# 朱元璋1# 模块1# 模板1# 正则表达式2# 测试3# 游戏2# 爬虫7# 生活迁移1# 电影2# 电脑1# 碎碎念1# 视觉识别1# 类1# 类型注解1# 网络基础2# 网络教室1# 羊毛2# 脚本2# 脚本工具1# 自动化2# 蓝奏云1# 表单1# 订阅推荐2# 记录2# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载2# 运动1# 部署11# 部落冲突1# 配置1# 随机图1# 面向对象5# 音乐3# 音标1# 项目实战11# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]