当前位置:首页 > VUE

vue 实现vshow

2026-01-13 06:24:26VUE

Vue 实现 v-show 指令

Vue 的 v-show 指令通过控制元素的 display CSS 属性来实现显示和隐藏。与 v-if 不同,v-show 不会移除 DOM 元素,而是通过样式切换。

vue 实现vshow

基本用法

<template>
  <div>
    <button @click="toggleVisibility">Toggle Visibility</button>
    <div v-show="isVisible">This element is visible</div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isVisible: true
    };
  },
  methods: {
    toggleVisibility() {
      this.isVisible = !this.isVisible;
    }
  }
};
</script>

实现原理

v-show 的核心逻辑是根据表达式的值动态设置元素的 display 样式:

vue 实现vshow

  • 当表达式为 true 时,元素显示(display 设置为原始值,如 blockinline 等)。
  • 当表达式为 false 时,元素隐藏(display: none)。

自定义 v-show

可以通过自定义指令实现类似 v-show 的功能:

<template>
  <div v-custom-show="isVisible">Custom v-show</div>
</template>

<script>
export default {
  directives: {
    'custom-show': {
      bind(el, binding) {
        el.style.display = binding.value ? '' : 'none';
      },
      update(el, binding) {
        el.style.display = binding.value ? '' : 'none';
      }
    }
  },
  data() {
    return {
      isVisible: true
    };
  }
};
</script>

与 v-if 的区别

  • v-show:仅切换 display 样式,DOM 元素始终保留。适合频繁切换的场景。
  • v-if:条件为 false 时会销毁 DOM 元素,条件为 true 时重新创建。适合不频繁切换的场景。

性能考虑

  • 频繁切换显示状态时,v-show 性能更好,因为避免了 DOM 的频繁销毁和重建。
  • 初始渲染成本较高时,v-if 更高效,因为可以跳过不必要的 DOM 渲染。

标签: vuevshow
分享给朋友:

相关文章

vue设计与实现目录

vue设计与实现目录

以下是《Vue设计与实现》一书的典型目录结构(根据常见技术书籍及Vue核心内容整理): 响应式系统 响应式数据的基本原理 依赖收集与触发更新 实现简易响应式系统 Proxy与Refl…

vue实现倒计时抢券

vue实现倒计时抢券

Vue 实现倒计时抢券功能 核心逻辑 倒计时抢券功能需要结合时间计算、状态管理和界面交互。通过 Vue 的响应式特性和生命周期钩子,可以高效实现这一需求。 实现步骤 1. 数据准备 在 Vue 组件…

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…

vue实现必填

vue实现必填

Vue 实现表单必填验证的方法 在Vue中实现表单必填验证可以通过多种方式完成,以下是几种常见的方法: 使用HTML5原生属性 最简单的必填验证可以通过HTML5的required属性实现: &l…

vue 实现上传

vue 实现上传

Vue 实现文件上传 使用 Vue 实现文件上传可以通过原生 HTML 的 <input type="file"> 或第三方库(如 axios、vue-upload-component)完…

实现vue vm

实现vue vm

Vue VM 实现方法 Vue VM(ViewModel)是 Vue.js 的核心概念之一,负责连接视图(View)和数据模型(Model)。以下是实现 Vue VM 的几种方法: 使用 Vue 实…