美文网首页
封装一个vue自定义指令自动获取文本框焦点

封装一个vue自定义指令自动获取文本框焦点

作者: 十一点后不在线 | 来源:发表于2023-02-15 11:13 被阅读0次

1.新建一个文件,命名为directive.js

import Vue from 'vue'
// 全局可以使用自定义指令  `v-focus`
 
  export default {
      install() {  // 插件对象(必须有install方法, 才可以注入到Vue.use中) 
        Vue.directive('focus', {  // 当被绑定的元素插入到 DOM 中时……
          inserted(el) {  //inserted:被绑定元素插入父节点时调用,一般只执行一次,所以我们在下边使用了update函数
            fou(el)
          },
          update(el) {  //update代表更新或者多次点击仍然会聚焦
            fou(el)
          }
        })
 
        // 这里我们把获取焦点封装一个函数,根据判断如果是input框或者textarea文本域,直接调用。如果是元素,就往元素里查找再获取。
        function fou(el) {
          if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
            // 判断如果是input/textarea就直接调用focus
            el.focus()
          } else { // 否则就往元素里边找获取
            el = el.querySelector('input').focus() || el.querySelector('textarea').focus()
          }
        }
      }
    }

2.在main.js中引入,并注册全局

import focus from '@/utils/directive.js'
 
Vue.use(focus)

3.DOM元素使用

<div v-focus></div>

相关文章

  • Vue.js 学习笔记(二)

    自定义指令 示例,文本框自动获取焦点 自定义全局指令 使用 Vue.directive() 定义全局指令。 和样式...

  • vue学习回顾第二天

    自动获取焦点 方式一:dom版 方式二:通过自定义指令获取焦点自定义指令通过Vue.directive()创建,它...

  • vue常用特性应用场景

    1 过滤器 Vue.filter 定义一个全局过滤器 2 自定义指令 让表单自动获取焦点 通过Vue.direc...

  • vue input自动获取焦点以及自定义指令

    vue自动获取焦点首先得自己自定义一个指令。如: 这样我们就新建了一个v-focus得指令。然后把指令添加到inp...

  • VUE进阶

    封装自定义vue指令 1. 封装输入框自动聚焦指令 在utils工具包中创建directives.js文件复制自动...

  • vue 自定义指令自动获取文本框焦点

    HTML: js: 如果在项目中使用官方的例子时,input不能自动获取焦点,使用简化时可自动获取焦点,查询相关资...

  • 封装移动端 vue 拖拽指令

    封装移动端 vue 拖拽指令 通过vue自定义指令,将拖拽行为封装为指令 使用transform做移动效果,需要注...

  • vue中自定义组件、指令、插件

    组件 全局组件 局部组件 自定义插件 提供install方法,挂载到Vue 指令 使用指令实现input自动获取焦...

  • vue全局API和使用方法

    Vue.use(plugins) 注册一个插件 例子: Vue.directive()创建或者获取自定义指令 一个...

  • VUE02--{directive、filter、compute

    VUE 案例:input自动获取焦点 1. DOM操作 (1)ref属性表示对dom的引用,ref值自定义,但不能...

网友评论

      本文标题:封装一个vue自定义指令自动获取文本框焦点

      本文链接:https://www.haomeiwen.com/subject/zenykdtx.html