当前位置:首页 > VUE

vue3实现回车导航

2026-01-07 04:50:06VUE

在 Vue 3 中实现回车导航

通过监听键盘事件,可以在输入框按下回车键时触发导航跳转。以下是具体实现方法:

方法一:使用 @keyup.enter 指令

<template>
  <input v-model="searchQuery" @keyup.enter="navigateToSearch" />
</template>

<script setup>
import { ref } from 'vue';
import { useRouter } from 'vue-router';

const router = useRouter();
const searchQuery = ref('');

const navigateToSearch = () => {
  if (searchQuery.value.trim()) {
    router.push({ path: '/search', query: { q: searchQuery.value } });
  }
};
</script>

方法二:手动监听事件 如果需要在非输入框元素上监听回车事件,可以通过 addEventListener 实现:

<template>
  <div ref="container">按回车键导航</div>
</template>

<script setup>
import { ref, onMounted, onUnmounted } from 'vue';
import { useRouter } from 'vue-router';

const router = useRouter();
const container = ref(null);

const handleKeyPress = (e) => {
  if (e.key === 'Enter') {
    router.push('/target-page');
  }
};

onMounted(() => {
  container.value.addEventListener('keydown', handleKeyPress);
  container.value.setAttribute('tabindex', '0'); // 使div可聚焦
});

onUnmounted(() => {
  container.value.removeEventListener('keydown', handleKeyPress);
});
</script>

注意事项

  • 确保目标元素可聚焦(如添加 tabindex
  • 移动端可能需要额外处理虚拟键盘的回车事件
  • 对于表单场景,建议结合 @submit.prevent 防止默认提交行为

扩展:全局回车监听

若需在任意页面监听回车,可创建一个自定义指令:

// main.js
app.directive('enter-nav', {
  mounted(el, binding) {
    el._keyHandler = (e) => {
      if (e.key === 'Enter') binding.value();
    };
    el.addEventListener('keyup', el._keyHandler);
    el.setAttribute('tabindex', 0);
  },
  unmounted(el) {
    el.removeEventListener('keyup', el._keyHandler);
  }
});

使用方式:

<div v-enter-nav="goToHome">按回车回首页</div>

vue3实现回车导航

分享给朋友:

相关文章

项目基于vue实现

项目基于vue实现

基于Vue实现项目的关键方法 搭建基础环境 安装Node.js和npm/yarn,确保开发环境具备运行Vue的能力。通过Vue CLI快速初始化项目结构,选择所需配置(如Babel、Router、Vu…

vue实现录播播放

vue实现录播播放

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

vue搜索过后实现分页

vue搜索过后实现分页

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

vue 移动端实现签名

vue 移动端实现签名

Vue 移动端签名实现方法 在移动端实现签名功能,可以通过HTML5的Canvas结合触摸事件完成。以下是具体实现步骤: 使用Canvas绘制签名 安装vue-signature-pad插件或直接使…

vue实现页面截屏

vue实现页面截屏

使用html2canvas库实现截屏 html2canvas是一个流行的JavaScript库,可以将DOM元素转换为Canvas图像。在Vue项目中安装html2canvas: npm insta…

vue怎么实现数据检测

vue怎么实现数据检测

Vue 数据检测的实现方式 Vue 通过响应式系统实现数据检测,核心机制基于 Object.defineProperty(Vue 2)或 Proxy(Vue 3)。以下是具体实现方法: 基于 Vue…