VUE2用ref获取不到DOM元素

文章讲述了在Vue2中使用VueElement-UI的dialog组件时,由于form可能在mounted阶段未渲染,导致ref无法获取到元素。解决方法是在dialog的open方法中使用Vue.nextTick确保元素加载完成再进行获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue element-ui,使用 this.$refs 无法获取 el-dialog 下的元素

问题描述

在使用ref获取element ui中dialog组件下form表单元素时,发现获取不到表单DOM,打印this.$refs.formRef显示undenfind

经过排查,发现是因为获取DOM元素的时候(我是在mounted中获取DOM的),dialog组件还没被还没打开,dialog上的form也没被渲染上去,这种情况下,form在页面中并不存在,元素不存在的话,元素上的属性当然是获取不到的

解决

在dialog组件的open()方法里面,使用以下方法进行获取,亲测如果不使用Vue.nextTick的话,能打印出来this.$refs但是还是获取不到form的DOM

 Vue.nextTick(function () {console.log(this.$refs.formRef)}).

总结

1、VUE2用ref获取DOM元素,必须要等页面中的ref子组件加载完毕,才可以获取到

2、在mounted之前的生命周期函数中获取不到,可以用this.$nextTick(()=>{})进行获取

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

加油吧少年时代

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

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

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

打赏作者

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

抵扣说明:

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

余额充值