当前位置:首页 > VUE

vue 实现 input focus

2026-01-14 06:16:14VUE

实现 input focus 的方法

在 Vue 中实现 input 元素的 focus 可以通过多种方式完成,以下是几种常见的方法:

使用 ref 和 $refs

通过 ref 属性获取 DOM 元素,并在 mounted 或需要时调用 focus 方法。

vue 实现 input focus

<template>
  <input ref="inputRef" />
</template>

<script>
export default {
  mounted() {
    this.$refs.inputRef.focus();
  }
}
</script>

使用 v-focus 自定义指令

创建一个自定义指令 v-focus,自动聚焦元素。

<template>
  <input v-focus />
</template>

<script>
export default {
  directives: {
    focus: {
      inserted(el) {
        el.focus();
      }
    }
  }
}
</script>

通过 $nextTick 确保 DOM 更新

在某些情况下,可能需要等待 DOM 更新完成后再聚焦。

vue 实现 input focus

<template>
  <input ref="inputRef" v-if="showInput" />
</template>

<script>
export default {
  data() {
    return {
      showInput: false
    };
  },
  methods: {
    showAndFocus() {
      this.showInput = true;
      this.$nextTick(() => {
        this.$refs.inputRef.focus();
      });
    }
  }
}
</script>

动态绑定 focus 状态

通过绑定 :focus 属性实现动态控制。

<template>
  <input :focus="isFocused" @blur="isFocused = false" />
</template>

<script>
export default {
  data() {
    return {
      isFocused: true
    };
  }
}
</script>

使用第三方库

vue-focus 等库可以简化聚焦逻辑。

<template>
  <input v-focus="true" />
</template>

<script>
import { focus } from 'vue-focus';
export default {
  directives: { focus }
}
</script>

注意事项

  • 确保元素在 DOM 中存在后再调用 focus 方法。
  • 自定义指令适用于需要复用的场景。
  • 动态绑定时需处理 blur 事件以避免状态不一致。

标签: vueinput
分享给朋友:

相关文章

vue实现详情

vue实现详情

Vue 实现详情页的常见方法 使用动态路由 在 Vue Router 中配置动态路由参数,通过 $route.params 获取详情 ID。示例路由配置: { path: '/detail/:i…

vue实现拍照

vue实现拍照

Vue实现拍照功能 在Vue中实现拍照功能通常需要结合浏览器的MediaDevices API和Canvas元素。以下是具体实现方法: 安装依赖(可选) 如果需要更简单的封装,可以安装vue-web…

vue compile 实现

vue compile 实现

Vue 编译实现原理 Vue 的编译过程将模板字符串转换为渲染函数,主要分为解析、优化和代码生成三个阶段。 解析阶段(Parse) 将模板字符串转换为抽象语法树(AST)。Vue 使用正则表达式和有…

vue实现toast

vue实现toast

Vue 实现 Toast 的方法 使用第三方库(推荐) 对于快速实现 Toast 功能,推荐使用成熟的第三方库如 vue-toastification 或 vant 的 Toast 组件。 安装 v…

vue 实现工具

vue 实现工具

Vue 实现工具的方法 使用 Vue 实现工具功能可以通过多种方式完成,具体取决于工具的类型和需求。以下是几种常见的方法: 组件化实现 创建一个独立的 Vue 组件来封装工具功能。例如,实现一个计…

vue底层实现

vue底层实现

Vue.js 的底层实现原理 Vue.js 是一个渐进式 JavaScript 框架,其核心实现主要包括响应式系统、虚拟 DOM、模板编译和组件化机制。以下是其关键实现细节: 响应式系统 Vue 2…