作者:Michael Thiessen

译者:前端小智

来源:laracasts.com

点赞再看,养成习惯

本文 GitHub https://github.com/qq44924588... 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。

在做项目时,有时我们需要让 input 聚焦,为了让用户更好的使用。

让 input 聚焦

所有的浏览器都有一个内置的方法,让 input 聚焦。首先,我们需要获取元素。

在原生 JS 中,我们可以使用下面方式来获取元素:

const input = document.getElementById('email');

Vue 提供了一个更好的方法:

const input = this.$refs.email;

获取元素后,我们就可以让 input 聚焦了

export default {

methods: {

focusInput() {

this.$refs.email.focus();

}

}

}

如果使用的是自定义组件,则$ref获取是该组件,而不是我们基础元素。 因此,如果尝试让该组件聚焦,就会报错。要获得自定义组件的根元素,我们可以用 $el 访问:

import CustomInput from './CustomInput.vue';

export default {

components: {

CustomInput,

},

methods: {

focusInput() {

this.$refs.email.$el.focus();

}

}

}

但是,如果要在组件加载时就聚焦,要怎么做呢?

页面加载时聚焦

我们可以 mouted 生命周期,让元素聚焦:

import CustomInput from './CustomInput.vue';

export default {

components: {

CustomInput,

},

mounted() {

this.focusInput();

},

methods: {

focusInput() {

this.$refs.email.$el.focus();

}

}

}

等待重新渲染

在某些情况下,我们可能需要等待Vue完成整个应用程序的重新渲染。例如,如果将input从隐藏状态切换到显示状态。

因此我们需要等待 input 加载好后,才能重新聚焦。

import CustomInput from './CustomInput.vue';

export default {

components: {

CustomInput,

},

data() {

return {

inputIsVisible: false,

};

},

mounted() {

this.focusInput();

},

methods: {

showInput() {

// Show the input component

this.inputIsVisible = true;

// Focus the component, but we have to wait

// so that it will be showing first.

this.nextTick(() => {

this.focusInput();

});

},

focusInput() {

this.$refs.email.$el.focus();

}

}

}

这里,我们在 nextTick 方法中调用 focusInput 方法。因为 nextTick 中表示 Dom 已经加载完成了,所以这时我们才能获取到 input 元素。

代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

交流

文章每周持续更新,可以微信搜索「 大迁世界 」第一时间阅读和催更(比博客早一到两篇哟),本文 GitHub https://github.com/qq449245884/xiaozhi 已经收录,整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,另外关注公众号,后台回复福利,即可看到福利,你懂的。

vue中弹窗input框聚焦_Vue 中如何让 input 聚焦?(包含视频讲解)相关推荐

  1. 四、Input框改placeholder中字体的颜色

    Input框改placeholder中字体的颜色 input::-webkit-input-placeholder { color: #ccc; font-size: 12px; } 转载于:http ...

  2. vue 怎么全局到入常量_Vue 中如何定义全局的变量和常量(转)

    17.6k 次阅读  ·  读完需要 10 分钟 7 Vue 中如何定义全局的变量和常量 我想要定义一个变量, 在项目的任何地方都可以访问到, 不需要每一次使用的时候, 都引入. 尝试1: 创建 gl ...

  3. 在html中加入文本框,在HTML中的文本框中添加多行

    我试图在保留设计的同时让我的文本框有多行.我对HTML/CSS相当陌生,所以请让我知道你是如何做这个家伙的.在HTML中的文本框中添加多行 此外,我试图让按钮在底部文本框的中心. 这是我的代码现在: ...

  4. Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)

    近期会议: 10月30-11月1日 全国高校Python课程高级研修班(苏州) 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清 ...

  5. html让文本框左剧中对齐_Python批量设置pptx文件中文本框边框与填充样式(含20分钟视频讲解)...

    近期会议:10月30-11月1日 全国高校Python课程高级研修班(苏州)推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学 ...

  6. excel 中vb组合框_Excel表中的数据验证组合框

    excel 中vb组合框 There are instructions on my Contextures website for using a combo box with data valida ...

  7. vue获取input的属性_Vue中自动获取input焦点

    1.给input属性添加autofocus属性,缺点autofocus 在移动版 Safari 上不工作 2.Vue官网给出的解决办法 // 注册一个全局自定义指令 `v-focus` Vue.dir ...

  8. vue单选框选中_vue中单选框与多选框的实现与美化

    我们在做一些页面时,可能会用到很多的单选框和复选框,但是原生的radio和checkbox前面的原型图标或方框样式不尽人意.于是,决定自己来实现单选框和复选框.我用的是vue,所以就用vue的方式实现 ...

  9. vue 相同的id不合并_vue中key的作用

    摘要 本文结合源码说明了key的作用,给出了一个不写key的反例,并分析了原因. 内容 key的作用 不写key会出的bug及原因分析 key的实践方案 key的作用 在数据变化前后,vue会得到两个 ...

最新文章

  1. 基于Shodan Python库的批量攻击实践 撒旦网
  2. mac全选文字的快捷键_在mac上写作必须知道的四组快捷键
  3. gulp+PC前端静态页面项目开发
  4. 第八期:实操:两台路由器,如何分别通过WAN和LAN口连接?
  5. 不能用了 重装系统git_怎么用光盘重装系统?
  6. CTF中的EXP编写技巧 zio库的使用
  7. win10家庭版如何开启组策略
  8. Box2D——入门教程
  9. springMVC结合jersey实现跨服务器文件上传
  10. XStream 解析 XML 深入剖析
  11. element ui 1.4 升级到 2.0.11
  12. 线报天下免费补丁,使用补丁可解锁全部线报
  13. 关于STM32红外遥控器的研究与分析
  14. 利用masm32输出PE文件头的基本属性
  15. python图形绘制星空图_绘图.md · 不是我/PyQt5-Chinese-tutorial - Gitee.com
  16. 品牌笔记本主板刷BIOS升级NVME ssd启动系统
  17. 什麼是雲端服務?阿正老師教你免費玩Amazon EC2雲端主機!(上篇)
  18. JS实现简单的登录注册页签
  19. redis数据库指令
  20. Redis之EXPIRE

热门文章

  1. 【PC工具】更新文字转语音、文字文本朗读工具,语音朗读软件,TTS语音合成...
  2. 【DIY】可能是最实用最便宜的 arduino 温湿度计方案,200615整合家用声控温湿度计完整方案...
  3. 5G来了4G降速?负载均衡链路聚合器了解一下
  4. 三 虚拟机安装Deepin
  5. 360 开源企业级 Kubernetes 多集群管理平台 Wayne
  6. java发送http连接
  7. 通过rsync清除目录的shell脚本
  8. linux中生成考核用的FAT32文件系统结构样例(一)
  9. 《C语言及程序设计》程序阅读——文件操作
  10. 使用 IntraWeb (31) - IntraWeb 的 Xml 操作使用的是 NativeXml