v-if失效原因

一般v-if失效都是和绑定变量有关,我所知道的一般有两种

1.绑定的变量为String类型或者其他类型

就是返回的变量类型与所需要的布尔类型不匹配。

html 复制代码
<template>
     <div>
       <div id="container" ref="container" v-if='type'></div>
    </div>
</template>
<script setup lang="ts">
  const type=ref('false')
</script>

就像这种,我们得到的type的值是"false"而不是false,两者之间类型不同。如果不确定变量类型,就用typeof去打印。

2.两个相似的组件,v-if无法就行判断

对于两个很相似的组件,不管自定义还是还是本身的,如果只是用v-if那可能会造成失效

html 复制代码
<template>
     <div>
       <el-button  v-if='type'></el-button>
       <el-button  v-if='!type'></el-button>
    </div>
</template>
<script setup lang="ts">
  const type=ref(false)
</script>

就像这样的,但是我们可以通过添加key值去区分。

html 复制代码
<template>
     <div>
       <el-button  v-if='type' key=1></el-button>
       <el-button  v-if='!type' key=2></el-button>
    </div>
</template>
<script setup lang="ts">
  const type=ref(false)
</script>

这样就可以生效了。

相关推荐
Rkgua几秒前
TS中`Function`、`CallableFunction` 和 `NewableFunction`的函数区别
前端
右耳朵猫AI几秒前
PHP技术周刊 2026年第20周
开发语言·php
Asize2 分钟前
重生之我在 Vibe Coding 时代当程序员:第十一课,JS底层 :变量提升真相
前端·javascript
HYCS2 分钟前
用pixi.js实现fabric.js(五):事件系统
前端·javascript·canvas
Momo__5 分钟前
Node.js 26 来了:Temporal API 默认启用,Date 终于可以退休了
前端·node.js
小宇AI6 分钟前
用纯 Node.js 写了一个 JS 解释器 — kernel-js-lite
javascript
雨季mo浅忆9 分钟前
记录前端内网开发之新入职篇
前端·内网开发
方也_arkling12 分钟前
【Java-Day12】接口
java·开发语言
小小de风呀14 分钟前
de风——【从零开始学 C++】(十)vector的模拟实现
开发语言·c++
右耳朵猫AI20 分钟前
Rust技术周刊 2026年第20周
开发语言·后端·rust