Vue实战篇十六:导航菜单

系列文章目录

Vue基础篇一:编写第一个Vue程序
Vue基础篇二:Vue组件的核心概念
Vue基础篇三:Vue的计算属性与侦听器
Vue基础篇四:Vue的生命周期(秒杀案例实战)
Vue基础篇五:Vue的指令
Vue基础篇六:Vue使用JSX进行动态渲染
Vue提高篇一:使用Vuex进行状态管理
Vue提高篇二:使用vue-router实现静态路由
Vue提高篇三:使用vue-router实现动态路由
Vue提高篇四:使用Element UI组件库
Vue提高篇五:使用Jest进行单元测试
Vue提高篇六: 使用Vetur+ESLint+Prettier插件提升开发效率
Vue实战篇一: 使用Vue搭建注册登录界面
Vue实战篇二: 实现邮件验证码发送
Vue实战篇三:实现用户注册
Vue实战篇四:创建多步骤表单
Vue实战篇五:实现文件上传
Vue实战篇六:表格渲染动态数据
Vue实战篇七:表单校验
Vue实战篇八:实现弹出对话框进行交互
Vue实战篇九:使用省市区级联选择插件
Vue实战篇十:响应式布局
Vue实战篇十一:父组件获取子组件数据的常规方法
Vue实战篇十二:多项选择器的实际运用
Vue实战篇十三:实战分页组件
Vue实战篇十四:前端excel组件实现数据导入
Vue实战篇十五:表格数据多选在实际项目中的技巧
Vue实战篇十六:导航菜单


一、背景

  • 导航菜单顾名思义即是为网站提供导航功能的组件:
  1. 在中后台管理系统中,我们一般会应用导航菜单、路由及后台权限,形成用户菜单栏。
  2. 同时,导航菜单也可以为网站建立导航栏,引导网站访问进行相应的网页浏览, 本文将通过Element Navbbar组件进行实战演示。

二、Element Navbar

2.1 顶栏模式

  • 导航菜单默认为垂直模式,通过mode属性可以使导航菜单变更为水平模式。
    在这里插入图片描述
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
  <el-menu-item index="1">处理中心</el-menu-item>
  <el-submenu index="2">
    <template slot="title">我的工作台</template>
    <el-menu-item index="2-1">选项1</el-menu-item>
    <el-menu-item index="2-2">选项2</el-menu-item>
    <el-menu-item index="2-3">选项3</el-menu-item>
    <el-submenu index="2-4">
      <template slot="title">选项4</template>
      <el-menu-item index="2-4-1">选项1</el-menu-item>
      <el-menu-item index="2-4-2">选项2</el-menu-item>
      <el-menu-item index="2-4-3">选项3</el-menu-item>
    </el-submenu>
  </el-submenu>
  <el-menu-item index="3" disabled>消息中心</el-menu-item>
  <el-menu-item index="4"><a href="https://www.ele.me" target="_blank">订单管理</a></el-menu-item>
</el-menu>
<div class="line"></div>
<el-menu
  :default-active="activeIndex2"
  class="el-menu-demo"
  mode="horizontal"
  @select="handleSelect"
  background-color="#545c64"
  text-color="#fff"
  active-text-color="#ffd04b">
  <el-menu-item index="1">处理中心</el-menu-item>
  <el-submenu index="2">
    <template slot="title">我的工作台</template>
    <el-menu-item index="2-1">选项1</el-menu-item>
    <el-menu-item index="2-2">选项2</el-menu-item>
    <el-menu-item index="2-3">选项3</el-menu-item>
    <el-submenu index="2-4">
      <template slot="title">选项4</template>
      <el-menu-item index="2-4-1">选项1</el-menu-item>
      <el-menu-item index="2-4-2">选项2</el-menu-item>
      <el-menu-item index="2-4-3">选项3</el-menu-item>
    </el-submenu>
  </el-submenu>
  <el-menu-item index="3" disabled>消息中心</el-menu-item>
  <el-menu-item index="4"><a href="https://www.ele.me" target="_blank">订单管理</a></el-menu-item>
</el-menu>

三、实战演示

  • 创建网站的顶栏导航条:
  1. 最左边为网站logo
  2. 从logo从左往右为各个导航功能
  3. 搜索栏
  4. 最右边为消息中心及个人中心图标。
<template>
  <div>
    <el-menu
      :default-active="activeIndex"
      class="el-menu-demo"
      mode="horizontal"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"
      @select="handleSelect"
    >
      <!-- 自定义logo组件 -->
      <el-menu-item index="0"> <Logo :collapse="false" /></el-menu-item>

      <el-menu-item index="1">产品开发</el-menu-item>
      <el-menu-item index="2">材料开发</el-menu-item>
      <el-menu-item index="3">平台开发</el-menu-item>
      <el-menu-item index="4">知识沉淀</el-menu-item>
      <el-menu-item index="5">知识地图</el-menu-item>

      <el-menu-item index="50">
        <i class="el-icon-search" />
        <el-input v-model="keyWord" size="mini" placeholder="搜索" />
      </el-menu-item>
      <el-menu-item index="60" style="float:right;">
        <div>
          <el-tooltip content="消息中心" effect="dark" placement="bottom">
            <img :src="Message" class="user-avatar" />
          </el-tooltip>
          <el-tooltip content="个人中心" effect="dark" placement="bottom">
            <img :src="Avatar" class="user-avatar" />
          </el-tooltip>
        </div>
      </el-menu-item>
    </el-menu>
  </div>
</template>
<script>
import Logo from './Logo'
import Avatar from '@/assets/images/avatar.png'
import Message from '@/assets/images/message.png'
export default {
  components: { Logo },
  data() {
    return {
      Avatar: Avatar,
      Message: Message,
      activeIndex: '1',
      keyWord: ''
    }
  },
  methods: {
    handleSelect(key, keyPath) {
      console.log(key, keyPath)
    }
  }
}
</script>
<style lang="scss" scoped>
  .user-avatar {
          margin-left: 5px;
          cursor: pointer;
          width: 40px;
          height: 40px;
          border-radius: 10px;
        }
</style>

在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
你可以使用Vue 3来动态创建侧边导航菜单。下面是一个简单的示例,展示了如何使用Vue 3和Vue Router来实现这个功能: 1. 首先,安装VueVue Router: ``` npm install vue@next vue-router@next ``` 2. 创建一个Vue实例并配置Vue Router: ```javascript import { createApp } from 'vue' import { createRouter, createWebHistory } from 'vue-router' // 导入你的组件 import Home from './components/Home.vue' import About from './components/About.vue' const routes = [ { path: '/', component: Home }, { path: '/about', component: About } ] const router = createRouter({ history: createWebHistory(), routes }) // 创建Vue应用并将router配置到实例中 const app = createApp({}) app.use(router) app.mount('#app') ``` 3. 创建侧边导航菜单组件: ```vue <template> <div> <ul> <li v-for="route in routes" :key="route.path"> <router-link :to="route.path">{{ route.name }}</router-link> </li> </ul> </div> </template> <script> export default { computed: { routes() { // 获取路由配置 return this.$router.getRoutes() } } } </script> ``` 4. 在根组件中使用侧边导航菜单组件: ```vue <template> <div id="app"> <side-menu></side-menu> <router-view></router-view> </div> </template> <script> import SideMenu from './components/SideMenu.vue' export default { components: { SideMenu } } </script> ``` 这样,你就可以动态创建侧边导航菜单了。当你添加或删除路由时,菜单会自动更新。每个菜单项都是一个`<router-link>`,它会根据路由配置生成链接并处理页面的导航。你可以根据自己的需求进行样式和功能的定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧zhuhuix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值