Vue使用el-input自动获取焦点和二次获取焦点问题及解决

 更新时间:2022年12月07日 17:10:40   作者:钢铁熊猫33  
这篇文章主要介绍了Vue使用el-input自动获取焦点和二次获取焦点问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

使用el-input自动获取焦点和二次获取焦点问题

最近,碰到一个问题,就是输入框旁边有一个编辑按钮,点击时,才可以对输入框进行编辑:


在这里插入图片描述

要实现的效果:


在这里插入图片描述

为了方便输入,需要自动获取焦点,所以加入了autofocus,但是发现,只有第一个并且第一次点击才起作用。

查了网上的一些文档,说是跟dom的渲染顺序和数据的缓存有点儿关系,至于深层次的原因,还没查到。

然后使用了Vue提供的自定义指令来解决,还有一点儿需要注意,el-input在页面渲染后,外层是个div,需要拿到里面的input才会有效果。

<el-input v-focus></el-input>

directives: {
  // 注册一个局部的自定义指令 v-focus
  focus: {
    // 指令的定义
    inserted: function (el) {
      // 聚焦元素
      el.querySelector('input').focus()
    }
  }
},

还有一种解决方案,是使用 Vue.nextTick() 和 Ref去做,例子就不去写了,都是去操作dom的。

使input和el-input自动获取焦点的处理

【普通input的自定义指令操作】:先在入口文件注册一个全局自定义指令

// main.js
Vue.directive('focus', {
  inserted (el, binding, vnode) {
    // 聚焦元素
    el.focus()
  }
})

【普通input的自定义指令使用】:v-"+指令名"

// index.vue
<input v-focus placeholder="因为有v-focus,所以我聚焦了" />

【el-input的自定义指令操作】:先在入口文件注册一个全局自定义指令

// main.js
Vue.directive('fo', {
  inserted (el, binding, vnode) {
    // 聚焦元素
    el.querySelector('input').focus()
  }
})

【el-input的自定义指令使用】:v-"+指令名"

// index.vue
<el-input v-fo placeholder="因为有v-fo,所以我聚焦了"></el-input>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue2和Vue3如何使用watch侦听器详解

    Vue2和Vue3如何使用watch侦听器详解

    这篇文章主要介绍了在Vue2和Vue3中如何使用watch侦听器,分别对vue2及vue3作了详细的说明,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)

    Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)

    这篇文章主要介绍了Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • vue-preview动态获取图片宽高并增加旋转功能的实现

    vue-preview动态获取图片宽高并增加旋转功能的实现

    这篇文章主要介绍了vue-preview动态获取图片宽高并增加旋转功能的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Django+Vue跨域环境配置详解

    Django+Vue跨域环境配置详解

    这篇文章主要介绍了Django+Vue跨域环境配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 将 vue 生成的 js 上传到七牛的实例

    将 vue 生成的 js 上传到七牛的实例

    本篇文章主要介绍了将 vue 生成的 js 上传到七牛的实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Vue2与Vue3中Ref绑定元素方式

    Vue2与Vue3中Ref绑定元素方式

    这篇文章主要介绍了Vue2与Vue3中Ref绑定元素方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • vuex存储数据的几种方法实例详解

    vuex存储数据的几种方法实例详解

    在浏览网页时我们有些时候需要记住一些用户选择的信息,比如登陆时我们如果选择了记住密码,那么我们下次进入该网页时就会有你上次的登陆信息,下面这篇文章主要给大家介绍了关于vuex存储数据的几种方法,需要的朋友可以参考下
    2022-10-10
  • Vue的data、computed、watch源码浅谈

    Vue的data、computed、watch源码浅谈

    这篇文章主要介绍了Vue的data、computed、watch源码浅谈,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Vue响应式原理与虚拟DOM实现步骤详细讲解

    Vue响应式原理与虚拟DOM实现步骤详细讲解

    在Vue中最重要、最核心的概念之一就是响应式系统。这个系统使得Vue能够自动追踪数据变化,并在数据发生变化时自动更新相关的DOM元素。本文将会探讨Vue响应式系统的实现原理及其底层实现
    2023-03-03
  • Vue实现飞机大战小游戏

    Vue实现飞机大战小游戏

    这篇文章主要为大家详细介绍了Vue实现飞机大战小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论