VUE组件学习 | 六、v-if, v-else-if, v-else组件

v-if、v-else-if 和 v-else 指令基础知识

在 Vue.js 中,v-if、v-else-if 和 v-else 是一组指令,用于根据表达式的值条件性地渲染元素。

基本语法

html 复制代码
<template>
  <div>
    <!-- 基础条件渲染 -->
    <h1 v-if="type === 'A'">类型 A</h1>
    <h1 v-else-if="type === 'B'">类型 B</h1>
    <h1 v-else>其他类型</h1>

    <!-- 与 `v-for` 一起使用 -->
    <ul>
      <li v-for="item in items" v-if="item.isVisible" :key="item.id">
        {{ item.text }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      type: 'A',
      items: [
        { id: 1, text: 'Item 1', isVisible: true },
        { id: 2, text: 'Item 2', isVisible: false },
        { id: 3, text: 'Item 3', isVisible: true },
      ],
    };
  },
};
</script>

重要注意事项

  1. 条件渲染的优先级 :v-if、v-else-if 和 v-else 指令可以连用,形成条件渲染的分支结构。v-if 和 v-else-if 指令必须紧跟在带有 v-if 或 v-else-if 的元素之后,而不能被跳过。

  2. v-if 是"真正"的条件渲染 :使用 v-if 的元素只会在相关表达式为真时被渲染并插入 DOM。如果表达式为假,该元素将不会被渲染。

  3. v-else 没有表达式 :v-else 指令不接受表达式,它仅仅作为 v-if 或 v-else-if 的"否则"分支。

  4. 使用 v-show 作为替代 :如果你需要频繁切换元素的显示状态,使用 v-show 可能更合适,因为 v-show 只是简单地切换元素的 CSS display 属性。

  5. 避免在 v-for 中使用 v-if :虽然可以在 v-for 中使用 v-if,但这通常不是一个好的做法,因为它会导致每个元素都执行条件检查。如果条件与列表中的项无关,最好使用计算属性来过滤列表。

结论

v-if、v-else-if 和 v-else 提供了一种强大的方式,根据条件渲染不同的模板部分。通过合理使用这些指令,你可以创建动态且响应用户交互的 Vue.js 应用。

相关推荐
IT_陈寒6 分钟前
Vite的HMR把我整不会了:一个生产环境的热更新坑
前端·人工智能·后端
Mh16 分钟前
如何使用双缓冲优化视频切换
前端
Highcharts.js22 分钟前
Highcharts Orbit 完全指南:把每一张图表变成交互式分析工具
react.js·前端框架·highcharts·orbit·使用指南·ai 图表·交互式分析工具
risenav23 分钟前
低头蓄力,抬头起跳:《萤虫跳跳》的 Rokid AIUI 开发实战
前端
ZhengEnCi39 分钟前
如何看待 Fable 5.2 用纯代码生成 1.4MB 视觉作品:光追、水面、倒影、火光的程序化生成原理
前端
再吃一根胡萝卜1 小时前
DSH 插件的 Host 与 Client:为什么「只加载了 Host」,以及要不要自己写 Client 加载器
前端
parade岁月2 小时前
AI 写的前端代码为什么总像 5 年前的?Chrome 官方出手了
前端
tryCbest2 小时前
Vue系列——第 15 篇:内置组件全家桶——Transition、Teleport、Suspense、KeepAlive
前端·vue.js
易师傅2 小时前
技术面试已死?AI 时代,真正拉开程序员差距的是什么?
前端·后端·程序员
David猪大卫3 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习