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>

这样就可以生效了。

相关推荐
CCYe、2 分钟前
限流与配额:企业AI网关的工程实践
前端·人工智能
看谷秀10 分钟前
arkts- 6 手势/沉浸式/深浅色/性能/组件补充/访问/js交互/通知/Native交互
前端·arkts
划船不慎掉水顺便摸鱼13 分钟前
TipTap 不是编辑器,是编辑器构造器:ProseMirror 模型驱动的富文本架构
前端
小高00719 分钟前
🔥🔥🔥TypeScript 7 正式版来了:别只看 10 倍速度,这 4 个迁移坑更值得注意
前端·javascript·面试
鹿角片ljp22 分钟前
Java框架篇:Spring + SpringMVC + SpringBoot + MyBatis深度复习
java·开发语言
凉茶社22 分钟前
shadcn/ui 默认改用 Base UI,Radix 被放弃了吗?
前端
Vuji24 分钟前
ReAct 与 Plan-Execute:两种 Agent 范式的实战对比
前端·agent
用户615958680002226 分钟前
从零原生搭建一个微前端简易框架
前端
小月土星27 分钟前
React + TypeScript 企业级开发实战:从类型约束到组件设计
前端
沙洲33 分钟前
Vite 环境变量终极指南:从原理到企业级实战
前端