v-show和v-if的区别

v-show 和 v-if 的区别

v-show

v-show 通过 CSS 的 display 属性控制元素的显示与隐藏。无论条件是否成立,元素始终会被渲染到 DOM 中,只是通过 display: none 隐藏。适合频繁切换显示状态的场景,因为不会触发组件的销毁与重建。

v-if

v-if 是真正的条件渲染,会根据条件动态添加或移除 DOM 元素。当条件为 false 时,元素不会被渲染到 DOM 中。适合条件变化较少的场景,因为每次切换都会触发组件的销毁与重建,可能带来更高的性能开销。

主要区别

  • 渲染机制: v-show 总是渲染,v-if 按需渲染。
  • 初始加载: v-show 初始渲染开销较高(即使隐藏也会渲染),v-if 初始渲染开销较低(条件为 false 时不渲染)。
  • 切换性能: v-show 切换时性能更好(仅修改 CSS),v-if 切换时性能较差(涉及 DOM 操作)。
  • 适用场景: v-show 适合频繁切换,v-if 适合条件不频繁变化或需要减少初始负载的场景。

示例代码

html 复制代码
<!-- v-show 示例 -->
<div v-show="isVisible">v-show 控制的内容</div>

<!-- v-if 示例 -->
<div v-if="isVisible">v-if 控制的内容</div>

总结

选择 v-show 还是 v-if 取决于具体需求:频繁切换用 v-show,条件稳定或需要优化初始加载用 v-if。

相关推荐
就叫年华吧丶19 小时前
长文档点目录定位总是不准?一个 content-visibility + 平滑滚动引发的连环坑(Vue3 实战)
前端·javascript·算法·vue
今年下半年2 天前
【VUE3】移动端:使用腾讯地图显示区域统计与放大显示资产点位
javascript·前端框架·vue·地图
志尊宝2 天前
Vue3 零基础每日笔记(054):Pinia 三件套详解——state / getters / actions 全搞懂
前端·javascript·vue.js·vue·前端开发
志尊宝9 天前
Vue3 零基础每日笔记(055):组件里正确使用 store——storeToRefs 解构与 $patch 批量修改
笔记·vue·html·前端开发·软件开发
yzy859 天前
Vue中下载或打开文件的JavaScript方法
前端·javascript·vue
溪语流沙11 天前
Django + Vue电商项目第001讲:开篇|注册登录加增删改查,那不是电商
redis·python·mysql·docker·typescript·django·vue
程序员阿黄11 天前
基于 Django 与 Vue 3 的智能实验室预约系统设计与实现
后端·python·mysql·django·vue·毕设
.Hypocritical.11 天前
Vue CLI(vue-cli)和 Vite 超详细对比
vue
志尊宝12 天前
Vue3 零基础每日笔记(040):Vite 创建 Vue3 + TS 项目——企业标配从这一篇开始
笔记·vue·html·前端开发·软件开发
凤城老人12 天前
从零手写开源私有云盘|Flask+Vue3+Electron全栈网盘,单容器一键部署
python·docker·electron·vue