vue3 头部菜单下拉
解决方案
在 Vue 3 中实现头部菜单下拉效果,通常有多种方式可以达成。一种是利用原生的 HTML <select>
标签配合 Vue 的 v-model
指令来快速实现简单的下拉选择;另一种则是使用更灵活的方式,通过自定义组件和事件监听,结合 CSS 实现一个美观且交互性强的下拉菜单。这两种思路,并给出相应的代码示例。
基于 select 标签的简单实现
对于一些只需要简单选择功能的场景,直接使用 <select>
标签是非常方便的。下面是一个基本的例子:
这段代码创建了一个包含三个选项的下拉菜单,用户可以选择其中一个选项,并且可以通过 v-model
双向绑定选中的值到 selectedOption
。
自定义组件实现复杂下拉菜单
当需要更加复杂的交互逻辑或者样式定制时,我们可以创建一个自定义组件来实现下拉菜单。这里我们将展示如何创建一个带有悬停显示子菜单的导航栏。
HTML & Template
html
<template>
<header>
<nav>
<ul class="nav-list">
<li v-for="(item, index) in navItems" :key="index" @mouseover="showDropdown(index)" @mouseleave="hideDropdown()">
<a href="#" rel="external nofollow" rel="external nofollow" >{{ item.title }}</a>
<ul v-if="item.children && item.showDropdown" class="dropdown-menu">
<li v-for="(child, childIndex) in item.children" :key="childIndex">
<a href="#" rel="external nofollow" rel="external nofollow" >{{ child }}</a>
</li>
</ul>
</li>
</ul>
</nav>
</header>
</template>
Script
CSS
这种方式不仅可以让开发者完全控制菜单的外观,还可以根据需求添加更多的交互逻辑,比如点击展开、键盘导航等。通过 CSS 控制样式也使得整个菜单看起来更加专业和美观。