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>

这样就可以生效了。

相关推荐
不简说18 分钟前
JS 代码技巧 vol.5 — 10 个错误处理套路,从 try/catch 到 Error Boundary
前端·javascript·程序员
wordpress资料库22 分钟前
Next.js更适合移动开发 不适合web开发
开发语言·前端·javascript·next.js
wujf9022 分钟前
Go 内存泄漏排查完整教程 (pprof)
开发语言·golang·xcode
卷无止境31 分钟前
Quarkdown:赋予 Markdown 超能力的现代排版系统
前端·markdown
言乐634 分钟前
Python实现基本搜索引擎
java·linux·开发语言·python·搜索引擎
小灰灰搞电子1 小时前
C++ boost::range 详解:基于最新版本的现代范围处理指南
开发语言·c++
ch.ju1 小时前
Java Programming Chapter 4——lambda expression
java·开发语言
BerryS3N1 小时前
C++23新特性在CLion中的实战体验:从语法糖到生产力提升
前端·c++23
罗超驿1 小时前
10.Java对象比较完全指南:从equals到Comparable与Comparator
java·开发语言
申君健24864182772022 小时前
# WebGPU 的渲染原理与 Shader
前端