antd 给input设置值_Vue实战056:input框自动获取焦点

本文介绍如何在Vue中实现input框自动获取焦点。通过watch监听对话框属性,利用$nextTick获取更新后的DOM元素进行focus操作,或者使用Vue自定义指令(v-focus),在元素插入父节点时和VNode更新时调用相关函数。此外,还讨论了全局注册自定义指令以在多个页面中复用的方法。
摘要由CSDN通过智能技术生成

在前面Vue实战055:WEB页面锁屏功能实现详解中,我们有个点击锁屏图标弹出输入锁屏密码对话框的功能,这时候我们需要点击输入框然后输入我们的密码,所以现在在优化下,弹出对话框的时候自动获取输入框焦点,这样我们就可以直接输入密码锁屏了。

3d952ac2fd578a0b5399d58bc05ab5e8.png

​比较简单的方法就是通过watch监听对话框属性,当对话框显示时box属性为true,这是我们通过refs属性来定位DOM元素并对元素进行focus操作,由于这里我们用的是Element组件,所以获取元素的时候需要注意实际操作的DOM元素在该元素的子元素中。

watch:{ box(){ if(this.box==true){ this.$refs.input.$refs.input.focus() } }},
02a49caaeab156610327c8ce15d45622.png

这时你会发现对应的元素,因为el-input本身是作为渲染元素来动态渲染的,而ref是作为渲染结果被创建的,在渲染初期该元素还不存在自然就无法访问到了。所以这里我们要利用$nextTick,$nextTick 是在 DOM 更新循环结束之后执行的延迟回调,在修改数据之后使用 $re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值