当前位置:首页 > 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 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现后退

vue实现后退

Vue 实现后退功能的方法 在 Vue 中实现后退功能通常可以通过以下几种方式完成,具体取决于应用场景和需求。 使用 window.history API 通过原生 JavaScript 的 win…

vue实现必填

vue实现必填

Vue 实现表单必填验证的方法 在Vue中实现表单必填验证可以通过多种方式完成,以下是几种常见的方法: 使用HTML5原生属性 最简单的必填验证可以通过HTML5的required属性实现: &l…

vue实现刷卡

vue实现刷卡

Vue 实现刷卡效果 在 Vue 中实现刷卡效果可以通过 CSS 动画和 Vue 的过渡系统结合完成。以下是一种常见的实现方式: 基础实现方法 安装 Vue 过渡依赖(如果尚未安装): npm i…

vue实现多线程

vue实现多线程

Vue.js 本身是单线程框架,但可以通过以下方法实现类似多线程的效果或利用浏览器多线程能力: 使用 Web Worker Web Worker 是浏览器提供的多线程 API,适合处理 CPU 密集…

vue实现销售程序

vue实现销售程序

Vue实现销售程序的基本步骤 搭建Vue项目基础结构 使用Vue CLI或Vite初始化项目,安装必要依赖(如Vue Router、Vuex/Pinia、Element UI/Ant Design V…