当前位置:首页 > VUE

vue实现侧边导航

2026-03-29 07:52:41VUE

实现侧边导航的基本结构

使用 Vue 结合 <template> 定义侧边导航的 HTML 结构,通常包含一个 <nav><aside> 容器,内部通过 v-for 动态渲染导航菜单项。

<template>
  <aside class="sidebar">
    <nav>
      <ul>
        <li v-for="item in menuItems" :key="item.id">
          <router-link :to="item.path">{{ item.title }}</router-link>
        </li>
      </ul>
    </nav>
  </aside>
</template>

定义导航数据

在 Vue 组件的 <script> 中定义导航菜单数据(如 menuItems),通常为一个数组,包含路径(path)和显示文本(title)。

<script>
export default {
  data() {
    return {
      menuItems: [
        { id: 1, title: "首页", path: "/" },
        { id: 2, title: "产品", path: "/products" },
        { id: 3, title: "关于", path: "/about" }
      ]
    };
  }
};
</script>

添加样式

通过 <style> 为侧边导航添加基础样式,例如固定宽度、背景色和悬停效果。

vue实现侧边导航

<style scoped>
.sidebar {
  width: 200px;
  background-color: #f0f0f0;
  height: 100vh;
  position: fixed;
  left: 0;
  top: 0;
}
.sidebar ul {
  list-style: none;
  padding: 0;
}
.sidebar li a {
  display: block;
  padding: 10px;
  color: #333;
  text-decoration: none;
}
.sidebar li a:hover {
  background-color: #ddd;
}
</style>

结合路由

若使用 Vue Router,需确保导航项的 path 与路由配置匹配,并通过 <router-link> 实现路由跳转。

// router.js 示例配置
const routes = [
  { path: "/", component: Home },
  { path: "/products", component: Products },
  { path: "/about", component: About }
];

响应式折叠功能

通过 Vue 的 v-ifv-show 控制侧边导航的显示/隐藏,并添加切换按钮。

vue实现侧边导航

<template>
  <button @click="toggleSidebar">切换导航</button>
  <aside class="sidebar" v-show="isSidebarVisible">
    <!-- 导航内容 -->
  </aside>
</template>

<script>
export default {
  data() {
    return {
      isSidebarVisible: true
    };
  },
  methods: {
    toggleSidebar() {
      this.isSidebarVisible = !this.isSidebarVisible;
    }
  }
};
</script>

嵌套子菜单

支持多级菜单时,可通过递归组件或嵌套 v-for 实现。

<template>
  <li v-for="item in menuItems" :key="item.id">
    <router-link :to="item.path">{{ item.title }}</router-link>
    <ul v-if="item.children">
      <li v-for="child in item.children" :key="child.id">
        <router-link :to="child.path">{{ child.title }}</router-link>
      </li>
    </ul>
  </li>
</template>

使用 UI 库加速开发

若需快速实现复杂侧边导航,可集成第三方 UI 库(如 Element UI、Ant Design Vue)。

<template>
  <el-menu :default-active="activeMenu" class="sidebar">
    <el-menu-item index="1" @click="navigate('/')">首页</el-menu-item>
    <el-submenu index="2">
      <template #title>产品</template>
      <el-menu-item index="2-1" @click="navigate('/products')">产品列表</el-menu-item>
    </el-submenu>
  </el-menu>
</template>

标签: 侧边vue
分享给朋友:

相关文章

vue 实现拖拽

vue 实现拖拽

Vue 实现拖拽功能 使用 HTML5 原生拖拽 API HTML5 提供了原生的拖拽 API,可以通过 draggable 属性和相关事件实现拖拽功能。 <template> &l…

vue tab实现

vue tab实现

Vue Tab 实现方法 使用动态组件实现 Tab 在 Vue 中可以通过动态组件 <component :is="currentTab"> 结合 v-for 和 v-bind 实现 Ta…

vue实现签章

vue实现签章

Vue 实现签章功能 签章功能通常包括手写签名、电子印章等。以下是基于 Vue 的实现方法: 使用 canvas 实现手写签名 安装依赖(如需要): npm install signatu…

vue 动画实现

vue 动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要分为内置组件和第三方库集成。 使用 Vue 内置过渡组件 Vue 的 <transition> 和 <transiti…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…

vue实现treeview

vue实现treeview

Vue 实现 TreeView 的方法 使用递归组件实现 TreeView 递归组件是 Vue 中实现 TreeView 的常见方式。通过组件调用自身,可以轻松处理嵌套的树形结构数据。 <te…