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

vue3学习笔记之条件渲染

条件渲染

v-if 指令

v-if 指令用于根据表达式的真假来决定是否渲染元素或组件。如果表达式的值为 true,则元素或组件会被渲染到 DOM 中;如果为 false,则元素或组件不会被渲染,甚至不会在 DOM 中存在。

基本用法
<template><div><h1 v-if="isShow">This is a heading</h1></div>
</template><script setup>
import { ref } from 'vue';const isShow = ref(true);
</script>

在上述例子中,只有当 isShow 的值为 true 时,<h1> 元素才会被渲染到页面上。

多个元素的条件渲染

你可以使用 <template> 标签来包裹多个元素,并在其上使用 v-if 指令。这样可以根据条件一次性渲染或不渲染多个元素。

<template><div><template v-if="isShow"><h1>Heading 1</h1><p>Paragraph 1</p></template></div>
</template><script setup>
import { ref } from 'vue';const isShow = ref(true);
</script>
v-else 和 v-else-if

v-else 和 v-else-if 指令可以与 v-if 一起使用,用于创建多个条件分支。

<template><div><h1 v-if="condition === 1">Condition 1</h1><h1 v-else-if="condition === 2">Condition 2</h1><h1 v-else>Other Condition</h1></div>
</template><script setup>
import { ref } from 'vue';const condition = ref(2);
</script>

v-show 指令

v-show 指令也用于根据条件显示或隐藏元素,但它与 v-if 不同的是,无论条件真假,元素始终会被渲染到 DOM 中,只是通过 CSS 的 display 属性来控制其显示或隐藏。

基本用法
<template><div><h1 v-show="isShow">This is a heading</h1></div>
</template><script setup>
import { ref } from 'vue';const isShow = ref(true);
</script>

在上述例子中,无论 isShow 的值是 true 还是 false<h1> 元素都会存在于 DOM 中,只是当 isShow 为 false 时,它的 display 属性会被设置为 none,从而在页面上隐藏。

v-if 和 v-show 的区别

  • 渲染方式
    • v-if 是根据条件的真假来决定是否渲染元素,条件为 false 时,元素不会出现在 DOM 中。
    • v-show 则是始终渲染元素,只是通过 CSS 控制其显示或隐藏。
  • 性能
    • v-if 有更高的切换开销,因为它需要在 DOM 中添加或移除元素。
    • v-show 有更高的初始渲染开销,因为它不管条件如何都会渲染元素。
  • 使用场景
    • 当条件在运行时很少改变时,使用 v-if 更合适。
    • 当条件频繁切换时,使用 v-show 更合适。
http://www.dtcms.com/a/141889.html

相关文章:

  • 关于EXPLAIN ANALYZE 工具的解析及使用方法(AI)
  • centos7更换yum源不生效
  • KingbaseV8
  • easyExcel单元格合并
  • 【TVM教程】microTVM TFLite 指南
  • C++11中的std::condition_variable
  • CCS编译器无法导入工程文件,检查原因是版本编译器编译问题
  • 自适应布局,平均分配,自动换行,上下对齐
  • 大模型相关面试问题原理及举例
  • java+postgresql+swagger-多表关联insert操作(九)
  • 【Scratch编程入门】字母动画制作
  • NHANES指标推荐:CMI
  • LLaMA Factory多模态微调实践:微调Qwen2-VL构建文旅大模型
  • 《奇迹世界起源》:神之月晓活动介绍!
  • YRAN定义
  • Enovia许可证管理与监控工具
  • 对WAV文件进行降噪
  • 51、项⽬中的权限管理怎么实现的
  • k8s介绍与实践
  • 【AI提示词】儿童看护员
  • 【嵌入式】【阿里云服务器】【树莓派】学习守护进程编程、gdb调试原理和内网穿透信息
  • css图片设为灰色
  • Allure测试报告按测试终端和测试类型智能分类查看
  • 前端为什么需要单元测试?
  • 数据仓库分层架构解析:从理论到实战的完整指南​​
  • AXOP36061S: 60V 高压单通道运算放大器
  • 视频分析设备平台EasyCVR化解高速服务区管理难题,打造全方位智能安防监控方案
  • 《AI赋能职场:大模型高效应用课》第8课 AI辅助职场沟通与协作
  • 杂书的读书笔记
  • 线程池七个参数的含义