当前位置:首页 > 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 实现多级表头的方法 使用 el-table 组件 Element UI 的 el-table 组件支持多级表头的实现,通过嵌套 el-table-column 即可完成。 <el-ta…

vue实现3d宇宙

vue实现3d宇宙

Vue实现3D宇宙效果 使用Three.js库 Three.js是一个强大的JavaScript 3D库,可以轻松集成到Vue项目中。安装Three.js依赖: npm install three…

vue多选实现

vue多选实现

Vue 多选实现方法 基础实现(v-model + multiple) 在 Vue 中实现多选可以通过 <select> 元素的 multiple 属性结合 v-model 完成。v-mo…

vue底层实现

vue底层实现

Vue.js 的底层实现原理 Vue.js 是一个渐进式 JavaScript 框架,其核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是其关键实现细节: 响应式系统 Vue 2…

vue 实现ztree

vue 实现ztree

在Vue中实现类似ZTree的功能,可以通过集成第三方库或自定义组件完成。以下是两种常见方法: 使用vue-tree组件 vue-tree是一个轻量级的Vue树形组件,支持复选框、懒加载等功能,适合…

vue实现爬虫

vue实现爬虫

Vue 实现爬虫的基本思路 Vue.js 本身是一个前端框架,主要用于构建用户界面。要实现爬虫功能,通常需要结合后端技术或浏览器自动化工具。以下是几种常见的方法: 方法一:Vue + Node.js…