当前位置:首页 > VUE

vue 实现 input focus

2026-01-14 06:16:14VUE

实现 input focus 的方法

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

使用 ref 和 $refs

通过 ref 属性获取 DOM 元素,并在 mounted 或需要时调用 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 更新完成后再聚焦。

<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 事件以避免状态不一致。

vue 实现 input focus

标签: vueinput
分享给朋友:

相关文章

vue实现tab标签

vue实现tab标签

Vue 实现 Tab 标签的方法 使用动态组件和 v-for 渲染标签 通过 v-for 循环生成标签页标题,结合 v-bind:class 动态切换激活状态。使用 v-show 或动态组件 <…

vue实现网页切换

vue实现网页切换

Vue 实现网页切换的方法 在 Vue 中实现网页切换通常可以通过以下几种方式完成,具体取决于项目需求和路由管理方式。 使用 Vue Router Vue Router 是 Vue.js 官方提供的…

vue实现好友列表

vue实现好友列表

实现好友列表的Vue组件 数据准备 在Vue组件的data中定义好友列表数据,通常是一个数组对象,每个对象包含好友的基本信息如ID、头像、昵称等。 data() { return {…

vue登录逻辑的实现

vue登录逻辑的实现

Vue 登录逻辑实现 前端实现 创建登录组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含表单元素,如用户名和密码输入框,以及提交按钮。 <template&…

vue搜索过后实现分页

vue搜索过后实现分页

Vue 实现搜索后分页功能 数据绑定与搜索逻辑 在 Vue 组件中定义必要的数据属性: data() { return { searchQuery: '', currentPag…

vue弹幕实现不重叠

vue弹幕实现不重叠

实现 Vue 弹幕不重叠的方法 CSS 定位与动画控制 通过绝对定位和动态计算弹幕轨道高度,确保弹幕在不同轨道上运行。每条弹幕占据固定高度的轨道,避免重叠。 // 弹幕轨道高度计算 const t…