使用Vue 控制元素显示隐藏的方法和区别

 更新时间:2022年12月07日 11:10:35   作者:彭式程序猿  
这篇文章主要介绍了Vue  控制元素显示隐藏的方法和区别,需要的朋友可以参考下

提示:以下是本篇文章正文内容,下面案例可供参考

一、控制元素显示隐藏的方法

1. v-if 和 v-else 指令

  • 单独使用 v-if,满足条件显示,反之隐藏
<template>
    <div v-if="a > 10">
        Demo show
    </div>
</template>

<script>
export default {
    data() {
        return {
            a:18
        }
    }
}
</script>

// 页面显示内容
Demo show
  • v-if 和 v-else 一起使用,满足v-if中的条件就显示有v-if判断中的代码内容,反之则显示 v-else中的内容
<template>
    <div v-if="a > 20">
        block A;
    </div>
    <div v-else>
        block B;
    </div>
</template>

<script>
export default {
    data() {
        return {
            a: 18
        }
    }
}
</script>

// 页面显示内容
 block B;

2. 切换元素的CSS display属性

  • v-show指令
<template>
    <div v-show="a>10">
        block A;
    </div>
</template>

<script>
export default {
    data() {
        return {
            a: 18
        }
    }
}
</script>

// 页面显示内容
 block A;
  • 设置元素的样式 ( display:none
<template>
    <div class="hide">
        block A;
    </div>
</template>

<style>
    .hide{
        display: none;
    }
</style>

3. opacity属性

<template>
    <div class="hide">
        block A;
    </div>
</template>

<style>
    .hide{
       opacity: 0;
    }
</style>

4. visibility属性

<template>
    <div class="hide">
        block A;
    </div>
</template>

<style>
    .hide{ 
        visibility: hidden;  //隐藏
        visibility: visible;   //显示
    }
</style>

5. width和height属性 (不建议使用)

<template>
    <div class="hide">
        block A;
    </div>
</template>

<style>
    .hide{ 
        width: 0;
        height: 0;
        overflow: hidden; //必须要有这个属性才能隐藏
    }
</style>

二、区别

  • v-if显示隐藏是将dom元素整个添加或删除;
  • v-show隐藏是为该元素添加css–display:none,dom元素依旧还在,但是不占任何的位置;
  • opacity是将元素的透明度设置为0, visibility: hidden是将元素隐藏,dom元素依旧还在,在网页中该占的位置还是占着.

三. 注意事项

  • 有v-if的地方不一定有v-else,有v-else同级元素中必有v-if;
  • v-if和v-else配合使用必须在同一级,不能存在不同级;
// 正确示例
<div>
      <div v-if="a > 0">
            block A;
      </div>
      <div v-else> block B; </div>
</div>

// 错误示例
<div>
      <div v-if="a > 0">
            block A;
            <div v-else> block B; </div>
      </div>
</div>
  • v-if有更高的切换消耗
  • v-show有更高的初始渲染消耗
  • 如果需要频繁切换则用v-show,反之则用v-if.

补充知识点:

 vue 控制元素的显示和隐藏

方法:

  • 使用 v-if 指令,通过动态的向DOM树内添加或者删除DOM元素的方式来显示或隐藏元素;
  • 使用 v-show 指令,通过设置DOM元素的display样式属性来控制显隐。

v-if 指令与 v-show 指令都可以根据值动态控制DOM元素显示隐藏,

v-if 和 v-show 属于Vue的内部常用的指令,指令的职责是当表达式的值改变时把某些特殊的行为应用到DOM上。

v-if 会直接删除元素v-show 只是隐藏,只是简单地切换元素的 CSS 属性display。

v-show 示例: 

比如想要 隐藏 下面这个 按钮 那么给这个 div 加一个 v-show 的属性,名字我写的showButton, 

<div v-show="showButton">
      <Button>按钮</Button>
</div>

然后在 js 代码中 设置 showButton 的默认值为 false ,就是刚启动的时候,默认是不显示的,

后面如果想要 显示 这个 按钮 ,就直接设置 showButton 为 true 就好了

到此这篇关于Vue 控制元素显示隐藏的方法和区别的文章就介绍到这了,更多相关Vue 控制元素显示隐藏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 实现一个Vue自定义指令懒加载的方法示例

    实现一个Vue自定义指令懒加载的方法示例

    这篇文章主要介绍了实现一个Vue自定义指令懒加载的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Vue中的 mixins 和 provide/inject详解

    Vue中的 mixins 和 provide/inject详解

    这篇文章主要介绍了Vue中的 mixins 和 provide/inject详解,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • vue+echarts实现3D柱形图

    vue+echarts实现3D柱形图

    这篇文章主要为大家详细介绍了vue+echarts实现3D柱形图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 在vue项目中配置你自己的启动命令和打包命令方式

    在vue项目中配置你自己的启动命令和打包命令方式

    这篇文章主要介绍了在vue项目中配置你自己的启动命令和打包命令方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue 项目中选择 TSX 而非传统 .vue 文件的原因分析

    Vue 项目中选择 TSX 而非传统 .vue 文件的原因分析

    文章探讨了Vue项目中使用TSX(TypeScript JSX)的背景、优势和局限性,TSX结合了TypeScript和JSX,增强了类型安全和代码组织性,但也增加了学习曲线和可读性问题,对于复杂应用,TSX提供了更大的灵活性和类型支持,逐渐成为一些开发者的选择
    2024-11-11
  • Vue状态管理工具Vuex工作原理解析

    Vue状态管理工具Vuex工作原理解析

    Vuex是一个专为Vue.js应用程序开发的状态管理模式,下面这篇文章主要给大家介绍了关于Vue中状态管理器(vuex)详解以及实际应用场景的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Vue读取本地静态文件json的2种方法以及优缺点

    Vue读取本地静态文件json的2种方法以及优缺点

    这篇文章主要介绍了Vue读取本地静态文件json的2种方法以及优缺点说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue.js页面中有多个input搜索框如何实现防抖操作

    Vue.js页面中有多个input搜索框如何实现防抖操作

    debounce是lodash工具库中的一个非常好用的函数。这篇文章主要介绍了Vue.js页面中有多个input搜索框如何实现防抖操作,需要的朋友可以参考下
    2019-11-11
  • vue+elementUI中el-radio设置默认值方式

    vue+elementUI中el-radio设置默认值方式

    这篇文章主要介绍了vue+elementUI中el-radio设置默认值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 关于electron打包的坑

    关于electron打包的坑

    本文主要介绍了关于electron打包的坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03

最新评论