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>

这样就可以生效了。

相关推荐
翔云 OCR API1 分钟前
发票查验接口详细接收参数说明-C#语言集成完整示例-API高效财税管理方案
开发语言·c#
Chasing Aurora7 分钟前
Python后端开发之旅(三)
开发语言·python·langchain·protobuf
GIS之路9 分钟前
GDAL 实现数据空间查询
前端
OEC小胖胖24 分钟前
01|从 Monorepo 到发布产物:React 仓库全景与构建链路
前端·react.js·前端框架
kong790692829 分钟前
Java基础-Lambda表达式、Java链式编程
java·开发语言·lambda表达式
2501_944711431 小时前
构建 React Todo 应用:组件通信与状态管理的最佳实践
前端·javascript·react.js
lixzest1 小时前
C++上位机软件开发入门深度学习
开发语言·c++·深度学习
困惑阿三1 小时前
2025 前端技术全景图:从“夯”到“拉”排行榜
前端·javascript·程序人生·react.js·vue·学习方法
苏瞳儿1 小时前
vue2与vue3的区别
前端·javascript·vue.js
于越海1 小时前
材料电子理论核心四个基本模型的python编程学习
开发语言·笔记·python·学习·学习方法