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>

这样就可以生效了。

相关推荐
袋鱼不重1 分钟前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
竹林8186 分钟前
Web3表单签名验证:我用 wagmi 和 ethers 给 DApp 加了一个“免密登录”,踩坑记录全在这了
javascript
用户6990304848758 分钟前
try catch使用场景 处理同步代码错误兼容用的
javascript·uni-app
LDR0068 分钟前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术11 分钟前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园21 分钟前
C++20 Modules 模块详解
java·开发语言·spring
Fireworks23 分钟前
深入vue3源码解读 -- 1、响应式的基础概念
前端
程序员黑豆23 分钟前
JDK 下载安装与配置详细教程
java·前端·ai编程
hunterandroid28 分钟前
文件存储:内部存储与外部存储
前端
VidDown35 分钟前
VidDown 工具站:免费、本地优先的开发者工具箱
javascript·编辑器·音视频·视频编解码·视频