当前位置:首页 > 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向下传递数据,通过$emit向上传递事件。多级组件的核心是递归或动态组件渲染。 <!-- 父组件 Paren…

vue实现录播播放

vue实现录播播放

Vue 实现录播播放 使用 video.js 实现 安装 video.js 和相关的 Vue 适配器: npm install video.js @videojs-player/vue 在 Vue…

vue弹幕实现不重叠

vue弹幕实现不重叠

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

vue实现文字播放栏

vue实现文字播放栏

Vue 实现文字播放栏(跑马灯效果) 方法一:使用 CSS 动画 + Vue 数据绑定 通过 CSS 的 @keyframes 实现动画效果,结合 Vue 的动态数据绑定控制内容。 <tem…

vue前端实现打印功能

vue前端实现打印功能

使用Vue实现前端打印功能 在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 使用window.print()方法 这是最简单的打印方式,直接调用浏览器的打印功能。 me…

vue实现收起展开面板

vue实现收起展开面板

实现收起展开面板的方法 在Vue中实现收起展开面板功能可以通过多种方式完成,以下是几种常见的实现方法: 使用v-show或v-if控制显示隐藏 利用Vue的指令可以轻松实现面板的展开和收起:…