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>

这样就可以生效了。

相关推荐
say_fall2 分钟前
C语言编程实战:每日一题:用队列实现栈
c语言·开发语言·redis
董世昌412 分钟前
前端跨域问题:原理、8 种解决方案与实战避坑指南
开发语言·前端·javascript
liupenglove2 分钟前
go-echarts基础使用方法
开发语言·golang·echarts
Tony Bai9 分钟前
Go 2025云原生与可观测年度报告:底层性能革新与生态固防
开发语言·后端·云原生·golang
铅笔侠_小龙虾9 分钟前
Java 模拟实现 Vue
java·开发语言·vue.js
吃炸鸡的前端10 分钟前
Vite创建react项目
前端·react.js·前端框架
九天轩辕10 分钟前
基于 Qt 和 libimobiledevice 的跨平台 iOS 设备管理工具开发实践
开发语言·qt·ios
程序喵大人12 分钟前
C++ MCP 服务器实现
开发语言·c++·项目·mcp服务器
IT_陈寒13 分钟前
Redis性能提升40%!我用这5个冷门但高效的配置优化了千万级QPS应用
前端·人工智能·后端
晚霞的不甘13 分钟前
实战精研:构建高安全、多模态的 Flutter + OpenHarmony 智慧医疗健康应用(符合 HIPAA 与医疗器械软件规范)
javascript·安全·flutter