v-if 指令:用于控制元素的显示或隐藏。
执行条件:当条件为 false 时,会将元素从 DOM 中删除。
应用场景:适用于显示隐藏切换频率较低的场景。
语法格式:
<div v-if="数据">内容</div>
基础用法:
<template> <h3>条件渲染 v-if</h3> <p v-if="status">内容</p> <button @click="status = !status">显示/隐藏</button> </template> <script setup> import { ref } from "vue"; let status = ref(true); </script>
效果:
注:当条件为 false 时,会将该元素从 DOM 中删除
配合 JS 表达式使用:
<template> <h3>条件渲染 v-if</h3> <p v-if="num == 5">内容</p> <button @click="num++">增加({{ num }})</button> </template> <script setup> import { ref } from "vue"; let num = ref(0); </script>
效果:
注:v-if 会将计算结果转换为 true 或 false,再进行创建或删除元素。
配合 v-else 和 v-else-if 使用
<template> <h3>条件渲染 v-else 和 v-else-if</h3> <p>当前 num 的值是:{{ num }}</p> <button @click="num++">点击num+1</button> <p v-if="num == 1">张三</p> <p v-else-if="num == 2">李四</p> <p v-else-if="num == 3">王五</p> <p v-else>你谁呀?</p> </template> <script setup> import { ref } from "vue"; let num = ref(0); </script>
效果:
注:v-else 和 v-else-if 必须紧跟在 v-if 的后边,标签之间紧挨着不能被打断。另外 v-else 不需要写执行条件。