当前位置: 首页 > news >正文

v-if 和v-show 的区别

在这里插入图片描述

第074个

查看专栏目录: VUE ------ element UI


专栏目标

在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。

提供vue2的一些基本操作:安装、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeMount,mounted, beforeUpdate,updated, beforeDestroy,destroyed,activated,deactivated,errorCaptured,components,)、 $root , $parent , $children , $slots , $refs , props, $emit , eventbus ,provide / inject, Vue.observable, $listeners, $attrs, $nextTick , v-for, v-if, v-else,v-else-if,v-on,v-pre,v-cloak,v-once,v-model, v-html, v-text, keep-alive,slot-scope, filters, v-bind,.stop, .native, directives,mixin,render,国际化,Vue Router等

本文章目录

    • 专栏目标
    • v-if: 条件渲染
    • v-show: 显示/隐藏
    • 代码示例

v-if和v-show都是Vue.js中的条件渲染指令,它们都可以根据表达式的值来决定是否渲染一个元素。但是它们的工作方式不同,因此在使用上也有一些区别。

在这里插入图片描述

v-if: 条件渲染

v-if指令根据表达式的值(真/假)来决定是否渲染一个元素。如果表达式的值为假(false),则元素及其子元素不会被渲染到DOM中;如果为真(true),则元素会被渲染。

使用规则:

单一用途: v-if适用于条件不经常改变的场景。每次条件改变时,Vue会创建或销毁元素,这意味着与该元素关联的数据绑定和事件监听器也会被创建或销毁。

块级作用域: v-if具有块级作用域,这意味着它会影响其内部所有子元素的渲染。

性能考虑: 频繁切换v-if可能会导致性能问题,因为每次状态改变都会导致元素的重新渲染。

v-show: 显示/隐藏

v-show指令用于控制元素的显示和隐藏,而不是真正地从DOM中移除或添加元素。它通过CSS的display属性来实现元素的显示和隐藏。

使用规则:

频繁切换: v-show适用于需要频繁切换条件的场景。因为它只是通过CSS来控制元素的显示和隐藏,所以不会像v-if那样导致元素的重新渲染。

性能考虑: 由于v-show只是通过CSS来控制元素的显示和隐藏,所以它的性能比v-if更好。

初始渲染: v-show在初始渲染时总是会渲染元素,无论条件是否满足。而v-if只有在条件满足时才会渲染元素。

代码示例

<template><div><button @click="toggle">Toggle</button><div v-if="isVisible" class="box">This is a box (v-if)</div><div v-show="isVisible" class="box">This is a box (v-show)</div></div>
</template><script>
export default {data() {return {isVisible: true};},methods: {toggle() {this.isVisible = !this.isVisible;}}
};
</script><style>
.box {width: 100px;height: 100px;background-color: #ccc;margin-top: 10px;
}
</style>

在这个例子中,我们有两个div元素,分别使用v-if和v-show指令来控制它们的显示和隐藏。当点击“Toggle”按钮时,isVisible的值会切换,从而触发元素的显示和隐藏。可以看到,使用v-if的元素会在条件不满足时从DOM中移除,而使用v-show的元素只会通过CSS来控制显示和隐藏。

http://www.lryc.cn/news/297041.html

相关文章:

  • LabVIEW网络测控系统
  • 攻防世界 CTF Web方向 引导模式-难度1 —— 11-20题 wp精讲
  • 华为Eth-Trunk级联堆叠接入IPTV网络部署案例
  • idea: 无法创建Java Class文件(SpringBoot)已解决
  • ChinaXiv:中科院科技论文预发布平台
  • 【人工智能】Fine-tuning 微调:解析深度学习中的利器(7)
  • 黄金交易策略(Nerve Nnife):大K线对技术指标的影响
  • django中实现数据迁移
  • 全新抖音快手小红书去水印系统网站源码 | 支持几十种平台
  • ChatGPT炸裂了
  • 小白代码审计入门
  • [开源]GPT Boss – 用图形化的方式部署您的私人GPT镜像网站
  • FastAPI使用ORJSONResponse作为默认的响应类型
  • C++初阶:适合新手的手撕string类(模拟实现string类)
  • uniapp canvas游标卡尺效果
  • 【django】建立python虚拟环境-20240205
  • 070:vue+cesium: 利用canvas设置线性渐变色材质
  • Electron+Vue实现仿网易云音乐实战
  • 【玩转408数据结构】线性表——定义和基本操作
  • 回归预测 | Matlab实现ABC-BP人工蜂群算法优化BP神经网络多变量回归预测
  • SQL笔记-2024/01/31
  • C#系列-简介(1)
  • LoRA:语言模型微调的计算资源优化策略
  • pycharm deployment 灰色 一直无法点击
  • 解决“使用Edge浏览器每次鼠标点击会出现一个黑色边框”的问题
  • IEC61499 学习记录
  • 斗地主登录界面(JAVA图形化界面)设置
  • RibbonOpenFeign源码(待完善)
  • Python DNS操作详解
  • Redis篇之分布式锁