Vue里面的坑哦,不能将v-if或v-else-if或v-else和ref一起使用,不然获取不到真实元素

文章讲述了在Vue中使用ref与v-if结合时可能遇到的问题,即无法获取到真实的DOM元素。解决方案是改用v-show或确保ref应用在始终显示的元素上,必要时可以使用定时器延迟获取。对于某些UI组件,由于动态渲染,也可能导致ref失效。
摘要由CSDN通过智能技术生成

真实的踩坑经验,虽然在控制台能打印出ref真实dom对象,但是就是不能用啊,问题的根源就是在你的ref元素和v-if一起使用了,是的,没毛病: 无论是v-if或v-else-if或v-else,都不能和ref一起使用,而且不论是直接使用,还是在子元素上使用ref,都会获取不到真实dom元素的

虽然你可以再控制台打印出ref对象:

但是就是不能使用哦,虽然能看到这个值,但是当你使用的时候,这个value就是undefined : 

第一种情况:使用了v-if

当你把v-if什么的统统换成v-show,一切都变好起来了,哈哈哈哈,所以,不要解决办法就是使用v-show替换v-if:

然后就可以使用真实的dom元素了:

第二种情况:使用了UI组件

以及最重要的一点:对应UI组件有些也是获取不到的:因为也会有写组件时动态出来了,会失去vue中的响应式类似的功能效果,所以后面开发要注意,要放在一直展示的页面元素上去获取,否则会懵逼!!!或者使用定时器,延时0.1毫秒即可获取到元素:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1024小神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值