element ui NavMenu 实现侧边栏导航菜单

这篇具有很好参考价值的文章主要介绍了element ui NavMenu 实现侧边栏导航菜单。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、原理

 

根据v-for遍历菜单参数,渲染导航栏。

使用Element UI 的 Container 布局容器和NavMenu导航菜单组件,使用router-view存放二级路由出口。

二、效果

element ui NavMenu 实现侧边栏导航菜单,vue.js,前端,javascript,elementui

三、实现案例

html:

  <el-container>
    <el-aside
      class="aside flex-shrink-0"
      style="width:260px;height: 100%;"
    >
    
    <el-menu
      class="border-r-0"
      style="height: 100%;"
      router
      :default-active="menuActive"
      @select="menuChange"
    >
      <template v-for="(item,index) in menuList">
        <el-submenu
          :key="item.dictValue"
          :index="item.dictValue"
        >
          <template slot="title">
            <i class="el-icon-document" />
            <span>{{ item.dictLabel }}</span>
          </template>
          <el-menu-item
            v-for="child in item.children"
            :key="`${child.dictValue}`"
            :index="`${child.dictValue}`"
            :route="{ name: child.dictValue }"
          >
            <i class="el-icon-document" />
            <span slot="title">{{ child.dictLabel }}</span>
          </el-menu-item>
        </el-submenu>
      </template>
    </el-menu>
    </el-aside>
    < !-- 二级路由出口 -->
    <router-view />
  </el-container>

js:

export default {
  name: 'test',
  components: {
  },
  data() {
    const menuList = [
      {
        dictLabel: '导航一',
        dictValue: '1',
        children: [
          { dictLabel: '分组一', dictValue: 'group1Item1'},
        ],
      },
      {
        dictLabel: '导航二',
        dictValue: '2',
        children: [
          { dictLabel: '分组一', dictValue: 'group2Item1'},
        ],
      },
    ]
    return {
      menuList,
      menuActive: menuList[0].children[0]?.dictValue,
    };
  },
  watch: {
    '$route.path': function watch() {
      const { name, params } = this.$route;
      this.menuActive = `${name}${params.type || ''}`;
    },
  },
  mounted() {
    // 刷新页面时默认展示当前路由
    const { name, params } = this.$route;
    this.menuActive =  `${name}${params.type || ''}`;
  },
  methods: {
    menuChange(index) {
      this.menuActive = index;
    },
  },
};

router/index.js: 

配置路由

      {
        path: 'test',
        name: 'test',
        meta: {
          title: '菜单',
        },
        redirect: '/test/group1Item1', // 默认页面
        component: () => import('@/test/index.vue'),
        children: [
          {
            path: 'group1Item1',
            name: 'group1Item1',
            meta: {
              title: '导航一分组一',
            },
            component: () => import('@/test/group1Item1.vue'),
          },
          {
            path: 'group2Item1',
            name: 'group2Item1',
            meta: {
              title: '导航二分组一',
            },
            component: () => import('@/test/group2Item1.vue'),
          }
        ]
      },


 文章来源地址https://www.toymoban.com/news/detail-714155.html

到了这里,关于element ui NavMenu 实现侧边栏导航菜单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2+element-ui实现侧边导航栏

    编写 client/src/components/LeftMenu.vue ,创建侧边导航栏: 编辑 client/src/views/Index.vue ,引入侧边导航栏:

    2024年02月02日
    浏览(48)
  • Vue结合element-ui实现导航菜单展开收缩小功能

    1. 先上个效果图    这里我把控制菜单收缩的放在中间了,是可以随便调整的。  2. 问题思路想法  ① 首先是布局,这就是个很经典的后台管理系统的容器页面,这里分为上下结构,上面一般放些系统logo、 登录的用户信息,还有一些小功能等等。然后下面又分为左右结构,

    2024年02月16日
    浏览(60)
  • Element -Ui之NavMenu导航栏

    mode:导航栏的模式,默认值vertical 导航栏处于垂直状态,改为horizonta可变为水平模式。 index:唯一标志。 default-active:激活当前菜单的index。 router: 是否使用路由,启用后可以通过index作为地址进行跳转。 el-menu-item index=\\\"1\\\"导航栏中的子菜单标签。 el-submenu 生成二级菜单。

    2024年02月14日
    浏览(42)
  • element ui实现动态侧边菜单栏以及页面布局

    一、实现效果 这里以学生成绩管理系统为例,整体布局以及实现效果如下所示:  二、整体布局   整体布局采用elementui 中Container 布局容器组件实现,如下所示。   整个页面布局页面为main.vue,其中左侧菜单栏部分被封装为一个组件( MenuTree),菜单部分使用elementui 中Men

    2024年02月11日
    浏览(48)
  • 解决Element UI中NavMenu 折叠菜单的坑

    在使用Element ui里NavMenu折叠菜单的时候 会遇到侧边导航栏收缩后,右侧内容不能一起收缩的问题和侧边栏折叠的卡顿一下的问题,下面让我们一起解决一下吧 在点击收缩以后,右侧不会跟着一起收缩 解决办法(修改width值) 使用ElementUi Nav侧边栏自带的折叠动画,文字会卡顿一

    2024年02月11日
    浏览(48)
  • vue后台项目左侧菜单栏配合element-ui中tag标签实现多标签页导航栏

    效果图 第一步:设置左侧菜单栏 左侧菜单栏,左侧菜单我这边自定义写死的数据。 分为有子菜单和没子菜单等情况,我用到的只有俩种,没有三级菜单。 HTML部分

    2024年02月11日
    浏览(50)
  • vue3后台管理系统实现动态侧边导航菜单管理(ElementPlus组件)

    记住 一级(el-sub-menu)的都是只是展示的 点击跳转的都是一级下的子级(el-menu-item) 完整展示 1:在登陆功能进行登陆 获取menu列表 注册路由表的时候 把文件进行创建好 因为注册的方法需要获取这个路径 整个router下的main product等等都要创建 2:侧边菜单界面 router/index.ts

    2024年02月16日
    浏览(55)
  • Vue + Element UI 实现权限管理系统 前端篇(十四):菜单功能实现菜

    菜单接口封装 菜单管理是一个对菜单树结构的增删改查操作。 提供一个菜单查询接口,查询整颗菜单树形结构。 http/modules/menu.js 添加 findMenuTree 接口。 菜单管理界面 菜单管理界面是使用封装的表格树组件显示菜单结构,并提供增删改查的功能。 Menu.vue 其中对表格树组件进

    2024年02月10日
    浏览(44)
  • 解决Vue+Element UI 使用el-aside时菜单栏无法撑起整个侧边栏高度,解决点开菜单栏时有部分突起问题。

    当我们使用element ui 的el-aside时,发现菜单栏无法撑满页面高度的100%  采用css样式设置height:100%的方法也无效 我们将height:100% 改为 height:100vh 即可 效果图如下   点开菜单栏时,我们发现菜单栏右侧会有部分突起 我们给el-menu-item定义一个类名 使用css进行封装即可解决      

    2024年02月11日
    浏览(77)
  • vue3.0+element Plus实现页面布局,侧边栏菜单路由跳转

    一. 先在router.js文件中配置路由,将侧边栏中需要跳转的页面都添加到children中 二. 在view目录下新建一个文件,里面包含侧边栏要跳转的页面 三.  页面样式布局 1. 我选择使用自定义组件BaseLayout.vue文件来设置header和aside样式显示 也可以使用element plus中的Container 布局容器 

    2024年02月13日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包