当前位置:首页 > VUE

vue 实现 input focus

2026-01-08 07:25:13VUE

实现 Input Focus 的方法

在 Vue 中实现 input 元素的聚焦可以通过以下几种方式完成。

使用 ref 和 $refs

通过 ref 属性标记 input 元素,然后在 Vue 实例或组件中调用 focus() 方法。

<template>
  <input ref="inputRef" type="text" />
  <button @click="focusInput">Focus Input</button>
</template>

<script>
export default {
  methods: {
    focusInput() {
      this.$refs.inputRef.focus();
    },
  },
};
</script>

使用 v-model 和 mounted 钩子

在组件挂载时自动聚焦 input 元素,适用于页面加载时需要自动聚焦的场景。

<template>
  <input v-model="inputValue" ref="inputRef" type="text" />
</template>

<script>
export default {
  data() {
    return {
      inputValue: "",
    };
  },
  mounted() {
    this.$refs.inputRef.focus();
  },
};
</script>

使用自定义指令

通过自定义指令实现更灵活的聚焦逻辑,适合复用或复杂场景。

<template>
  <input v-focus type="text" />
</template>

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

使用 Vue 3 的 Composition API

在 Vue 3 中,可以通过 refonMounted 实现聚焦功能。

<template>
  <input ref="inputRef" type="text" />
  <button @click="focusInput">Focus Input</button>
</template>

<script>
import { ref, onMounted } from "vue";

export default {
  setup() {
    const inputRef = ref(null);

    const focusInput = () => {
      inputRef.value.focus();
    };

    onMounted(() => {
      inputRef.value.focus();
    });

    return {
      inputRef,
      focusInput,
    };
  },
};
</script>

注意事项

  • 确保 input 元素已经渲染完成后再调用 focus(),否则可能无法生效。
  • 在 Vue 3 中,ref 需要通过 .value 访问 DOM 元素。
  • 自定义指令适用于需要复用的场景,但需注意指令的生命周期钩子。

以上方法均能有效实现 input 元素的聚焦功能,可根据具体需求选择合适的方式。

vue 实现 input focus

标签: vueinput
分享给朋友:

相关文章

vue实现文档导入

vue实现文档导入

Vue 实现文档导入的方法 在 Vue 中实现文档导入功能通常涉及文件上传、解析和处理。以下是几种常见的方法: 使用原生文件输入和 FileReader 通过 HTML 的原生 <input…

vue登录逻辑的实现

vue登录逻辑的实现

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

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue 实现滚动

vue 实现滚动

实现滚动的基本方法 在Vue中实现滚动效果可以通过多种方式完成,包括使用原生JavaScript、CSS或第三方库。以下是一些常见的方法: 使用window.scrollTo方法实现页面滚动 可以…

vue实现动态

vue实现动态

Vue 实现动态路由的方法 在 Vue 中实现动态路由通常涉及以下几个关键步骤: 使用 Vue Router 的动态路由匹配 通过 Vue Router 的 :param 语法可以实现动态路由匹配。…