<…">
当前位置:首页 > VUE

vue实现菜单导航

2026-03-10 03:21:12VUE

实现基础菜单结构

使用 Vue 的 v-for 动态渲染菜单项,数据通过数组定义。示例代码:

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

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

嵌套子菜单支持

通过递归组件实现多级菜单。定义子组件 SubMenu.vue

vue实现菜单导航

<template>
  <div class="submenu">
    <div @click="toggleSubMenu">{{ parentItem.name }}</div>
    <ul v-show="isOpen">
      <li v-for="child in parentItem.children" :key="child.id">
        <router-link :to="child.path">{{ child.name }}</router-link>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  props: ["parentItem"],
  data() {
    return { isOpen: false };
  },
  methods: {
    toggleSubMenu() {
      this.isOpen = !this.isOpen;
    }
  }
};
</script>

集成路由导航

结合 Vue Router 实现路由跳转。确保路由配置与菜单数据匹配:

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

高亮当前选中菜单

通过 Vue Router 的 router-link-active 类或自定义逻辑实现:

vue实现菜单导航

.router-link-active {
  color: #42b983;
  font-weight: bold;
}

响应式折叠菜单

使用 CSS 媒体查询或 Vue 监听窗口宽度动态切换菜单样式:

data() {
  return {
    isCollapsed: window.innerWidth < 768
  };
},
mounted() {
  window.addEventListener("resize", () => {
    this.isCollapsed = window.innerWidth < 768;
  });
}

权限控制菜单项

根据用户角色过滤菜单数据:

computed: {
  filteredMenu() {
    return this.menuItems.filter(item => {
      return user.roles.includes(item.requiredRole);
    });
  }
}

标签: 菜单vue
分享给朋友:

相关文章

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配合…

实现简易vue

实现简易vue

实现简易 Vue 的核心思路 Vue 的核心功能包括数据响应式、模板编译和虚拟 DOM。以下是一个简易实现方案,涵盖核心功能模块。 数据响应式系统 通过 Object.defineProperty…

vue实现getapp

vue实现getapp

Vue 中实现全局获取应用实例的方法 在 Vue 3 中,可以通过 getCurrentInstance 方法获取当前组件实例,但需要明确其使用场景和限制。以下是具体实现方式: 方法一:通过 get…

vue实现ide

vue实现ide

Vue 实现 IDE 的基本思路 使用 Vue 构建一个简易的集成开发环境(IDE)需要整合代码编辑器、文件管理、终端模拟等功能。以下是关键实现步骤和推荐工具。 核心功能模块 代码编辑器 使用…

vue实现 页面

vue实现 页面

Vue 实现页面的核心方法 创建 Vue 项目 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 是官方脚手架工具,适合传统项目;Vite 提供更快的现代构建体验。 npm cre…

vue实现修改

vue实现修改

Vue 实现修改功能的方法 在 Vue 中实现修改功能通常涉及表单绑定、状态管理和 API 调用。以下是几种常见实现方式: 双向数据绑定实现表单修改 使用 v-model 指令绑定表单元素与组件数据…