当前位置:首页 > VUE

vue显示隐藏实现原理

2026-02-21 03:34:12VUE

Vue 显示隐藏的实现原理

Vue 中实现显示隐藏的核心原理是通过数据驱动 DOM 的渲染,主要依赖以下机制:

数据绑定与响应式系统

Vue 通过响应式系统监听数据变化。当 v-showv-if 绑定的数据发生变化时,Vue 会自动触发组件的重新渲染或 DOM 操作。

vue显示隐藏实现原理

v-show 的实现

v-show 通过 CSS 的 display 属性控制元素的显示与隐藏:

  • 当条件为 true 时,设置 display: ''(恢复默认显示状态)。
  • 当条件为 false 时,设置 display: none
<div v-show="isVisible">内容</div>

编译后的代码逻辑类似:

vue显示隐藏实现原理

if (isVisible) {
  el.style.display = '';
} else {
  el.style.display = 'none';
}

v-if 的实现

v-if 通过动态添加/移除 DOM 节点实现:

  • 当条件为 true 时,将元素插入 DOM。
  • 当条件为 false 时,从 DOM 中移除元素。
<div v-if="isVisible">内容</div>

编译后的逻辑类似:

if (isVisible) {
  // 创建节点并插入 DOM
  const node = createNode();
  parent.appendChild(node);
} else {
  // 从 DOM 中移除节点
  parent.removeChild(node);
}

性能对比

  • v-show:初始渲染成本高(始终渲染 DOM),切换成本低(仅修改 CSS)。
  • v-if:初始渲染成本低(惰性渲染),切换成本高(需重建/销毁组件)。

使用场景建议

  • 频繁切换显示状态时使用 v-show
  • 运行时条件很少变化时使用 v-if,可减少初始 DOM 节点数量。

标签: 原理vue
分享给朋友:

相关文章

vue实现高亮

vue实现高亮

Vue 实现文本高亮的方法 在 Vue 中实现文本高亮可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-html 指令 通过 v-html 指令可以动态插入 HTML 内容,将需要高…

vue实现radio

vue实现radio

Vue 实现 Radio 按钮 在 Vue 中实现 Radio 按钮可以通过 v-model 进行数据绑定,结合 input 元素的 type="radio" 属性。以下是一个基本示例: <t…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…

vue实现筛选

vue实现筛选

实现筛选功能的基本思路 在Vue中实现筛选功能通常需要结合数据绑定、计算属性和方法。筛选的核心逻辑是根据用户输入的条件过滤原始数据列表,并动态更新显示结果。 数据准备 定义一个数组存储原始数据,另一…

vue实现github

vue实现github

Vue 实现 GitHub 相关功能 创建 GitHub API 请求 在 Vue 项目中,可以使用 axios 或 fetch 与 GitHub API 进行交互。需要在 GitHub 上创建个人访…

vue实现拖拉

vue实现拖拉

实现拖拽功能的基本步骤 在Vue中实现拖拽功能可以通过原生HTML5的拖放API或第三方库如vuedraggable完成。以下是两种方法的详细说明。 使用HTML5原生拖放API HTML5提供了原…