当前位置:首页 > VUE

vue 实现 input focus

2026-01-08 07:25:13VUE

实现 Input Focus 的方法

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

使用 ref 和 $refs

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

vue 实现 input 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 元素,适用于页面加载时需要自动聚焦的场景。

vue 实现 input focus

<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 元素的聚焦功能,可根据具体需求选择合适的方式。

标签: vueinput
分享给朋友:

相关文章

vue实现拖动

vue实现拖动

Vue实现拖动的常用方法 在Vue中实现拖动功能通常需要结合HTML5的拖放API或第三方库。以下是几种常见实现方式: 使用HTML5原生拖放API HTML5提供了原生拖放API,可以通过drag…

vue实现 单选

vue实现 单选

实现 Vue 单选功能 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 可以轻松实现单选功能,将单选按钮的值绑定到同…

vue删除实现

vue删除实现

Vue 删除功能的实现方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 方法一:使用数组的 splice 方法 通过索引删除数组中的元素,适用于列表渲染的场景。 methods: {…

node vue实现

node vue实现

Node.js 与 Vue.js 实现方案 环境搭建 安装 Node.js(建议 LTS 版本),通过 npm 或 yarn 初始化项目。Vue.js 可通过 Vue CLI 快速搭建: npm…

vue实现卡片

vue实现卡片

Vue 实现卡片组件的方法 使用 Vue 实现卡片组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 在 Vue 单文件组件中,可以通过模板和样式直接实现卡片效果…

vue实现动态禁用

vue实现动态禁用

动态禁用表单元素或按钮 在Vue中实现动态禁用功能通常通过v-bind:disabled(或简写为:disabled)绑定一个响应式变量实现。当变量值为true时,元素被禁用;为false时启用。…