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>

这样就可以生效了。

相关推荐
Lee川2 分钟前
Vue Router 4 核心精讲:从原理到面试实战
前端·vue.js
程序猿_极客4 分钟前
【2025 最新】 MySQL 数据库安装教程(超详细图文版):从下载到配置一步到位
开发语言·数据库·mysql·mysql数据库安装
树上有只程序猿5 分钟前
2026年,学“前端”还有前途吗?
前端
2501_945425159 分钟前
C++编译期字符串处理
开发语言·c++·算法
我命由我1234510 分钟前
JS 开发问题:url.includes is not a function
开发语言·前端·javascript·html·ecmascript·html5·js
m0_7336122111 分钟前
模板编译期哈希计算
开发语言·c++·算法
weixin1997010801615 分钟前
义乌购商品详情页前端性能优化实战
前端·性能优化
汪啊汪17 分钟前
Day 3:Hooks 原理
前端
阿蒙Amon17 分钟前
C#常用类库-详解SqlSugar
开发语言·数据库·c#
汪啊汪20 分钟前
Day 2:JSX 转换原理
前端