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>

这样就可以生效了。

相关推荐
NoneCoder11 分钟前
JavaScript系列(84)--前端工程化概述
前端·javascript·状态模式
晚安72018 分钟前
idea添加web工程
java·前端·intellij-idea
关关钧1 小时前
【R语言】绘图
开发语言·python·r语言
零凌林1 小时前
vue3中解决组件间 css 层级问题最佳实践(Teleport的使用)
前端·css·vue.js·新特性·vue3.0·teleport
大吱佬2 小时前
解决每次 Maven Rebuild 后 Java 编译器版本变为 1.5
java·开发语言·maven
Ranye1232 小时前
从 JS 到 Dart:语法基础
javascript·flutter·dart
拉不动的猪2 小时前
刷刷题17(webpack)
前端·javascript·面试
C#Thread2 小时前
C#上位机--循环语句
开发语言·c#