v-if v-show

v-if和v-show最大的区别就是关于DOM元素加载方式的不同
v-if显示隐藏是将整个DOM元素删除或者添加,如果隐藏,文档将加载不到DOM元素
v-show则是简单切换元素的css属性,等同于css属性中的display,有v-show的元素会始终渲染并保持在DOM中,即DOM元素一直存在

这次碰到的错误是在弹窗上添加了v-if,所以想让弹窗中的input元素获取焦点,但是一直失败,后来才明白,v-if隐藏时,文档中并没有DOM元素,弹窗不存在,所以加载不到弹窗中的内容,故将v-if改成了v-show,文档可以查询到v-show的DOM结构

但是即使将v-if改成v-show,隐藏的弹窗中的input元素依然不能直接使用
this.$refs.input.focus()获取,
后来想到,加载时可以让焦点获取延时生效,所以使用setTimeout
在这里插入图片描述
这样即可成功在弹窗出现时,获取弹窗中input元素的焦点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值