vue+elementui搭建后台管理界面(3侧边栏菜单)

上一节搭好了主框架,但是标签页和侧边栏只是分别展示了各自的菜单,如何将二者联动起来?

定义路由规则:当有 children 属性时,从 children 里取出 path 填充到侧边栏,如:

{
  path: ‘/‘,
  redirect: ‘/dashboard‘,
  name: ‘Container‘,
  component: Container,
  children: [
    {path: ‘dashboard‘, name: ‘首页‘, component: Dashboard, },
    {path: ‘article‘, name: ‘文章‘, component: Article, },
  ]
}

该路由的 children 有2个子路由,我期望生成如下菜单:

1 新增组件

新增 views/dashboard/index.vue

<template>
  <h1>dashboard</h1>
</template>

views/article/index.vue

<template>
  <h1>Article</h1>
</template>

此时 src 的目录结构

│  App.vue
│  main.js
├─assets
│      logo.png
├─components
│      HelloWorld.vue
├─container
│      Container.vue
├─router
│      index.js
├─styles
│      index.scss
└─views
    │  TheLogin.vue
    ├─article
    │      index.vue
    └─dashboard
            index.vue

2 修改路由

修改 src/router/index.js :

import Vue from ‘vue‘
import Router from ‘vue-router‘
import Login from ‘@/views/TheLogin‘
import Container from ‘@/container/Container‘
import Dashboard from ‘@/views/dashboard‘
import Article from ‘@/views/article‘

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: ‘/login‘,
      name: ‘Login‘,
      component: Login
    },
    {
      path: ‘/‘,
      redirect: ‘/dashboard‘,
      name: ‘Container‘,
      component: Container,
      children: [
        {path: ‘dashboard‘, name: ‘首页‘, component: Dashboard, },
        {path: ‘article‘, name: ‘文章‘, component: Article, },
      ]
    }
  ]
})

3 页面主框架

修改 src/container/Container.vue

el-header 的样例菜单替换为

<el-menu default-active="/"
        router
          class="el-menu-demo tab-page"
          mode="horizontal"
          @select="handleSelect"
          active-text-color="#409EFF">
  <el-menu-item index="/">首页</el-menu-item>
</el-menu>

el-aside 的样例菜单替换为

<el-menu :default-active="defaultActive"
        router
          class="el-menu-vertical-demo"
          @open="handleOpen"
          :collapse="isCollapse">
  <template v-for="route in $router.options.routes" v-if="route.children && route.children.length">
      <template v-for="item in route.children" >
        <el-menu-item
          :key="route.path + ‘/‘ + item.path"
          :index="item.path"
        >
          <i class="el-icon-menu"></i>
          <span slot="title">{{ item.name }}</span>
      </el-menu-item>
      </template>
  </template>
</el-menu>

此时的页面:

原文地址:https://www.cnblogs.com/wbjxxzx/p/9943049.html

时间: 2024-12-28 17:30:21

vue+elementui搭建后台管理界面(3侧边栏菜单)的相关文章

vue+elementui搭建后台管理界面

1 会话存储 使用html5的 sessionStorage 对象临时保存会话 // 保存会话 sessionStorage.setItem('user', username) // 删除会话 sessionStorage.removeItem('user', username) 2 将所有未登录会话重定向到 /login 用 vue-router 的 beforeEach 实现beforeEach 方法接收三个参数: to: Route: 即将要进入的目标 路由对象 from: Route:

VUE+ElementUI 搭建后台项目(一)

前言 之前有些过移动端的项目搭建的文章,感觉不写个pc端管理系统老感觉少了点什么,最近公司项目比较多,恰巧要做一个申报系统的后台管理系统,鉴于对vue技术栈比较熟悉,所以考虑还是使用vue技术栈来做:看过一个不错的后台配置模板(vue-element-admin),页面也挺美的,但是还是碍于不想看太多关于这个模板的配置说明,于是又拉出来之前我搭建的简易版的模板,决定重构下,使用自己搭建的后台系统模板,配置非常简单:本文将从初始化项目开始一直到打包上线做一个详细的介绍,看完本文章,绝对会对其中的一

使用vuejs2.0和element-ui 搭建的一个后台管理界面

说明: 这是一个用vuejs2.0和element-ui搭建的后台管理界面. 相关技术: vuejs2.0:渐进式JavaScript框架,易用.灵活.高效,似乎任何规模的应用都适用. element-ui:基于vuejs2.0的ui组件库. vue-router:一般单页面应用spa都要用到的前端路由. axios: 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用. mock.js: 生成随机数据,拦截 Ajax 请求,让前端攻城师独立于后端进行开发.

vuejs 和 element 搭建的一个后台管理界面

介绍: 这是一个用vuejs2.0和element搭建的后台管理界面. 相关技术: vuejs2.0:渐进式JavaScript框架,易用.灵活.高效,似乎任何规模的应用都适用. element:基于vuejs2.0的ui组件库. vue-router:一般单页面应用spa都要用到的前端路由. vuex:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式. 效果图: 演示地址:https://taylorchen709.github.io/vue-admin/ 源码地址:https:

4、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——后台管理界面

这一章节比较简单,我就直接贴代码了,后台管理登陆界面如下: 对应的控制器HomeController.cs,代码如下: using YKT.Model; using YKT.Common; using YKT.BLL; using YKT.Common.HtmlHelpers; using YKT.Common.Functions; using Microsoft.Practices.Unity; using YKT.IBLL; namespace YKT.Controllers { publi

Django后台管理界面

之前的几篇记录了模板视图.模型等页面展示的相关内容,这篇主要写一下后台admin管理界面的内容. 激活管理界面 Django管理站点完全是可选择的,之前我们是把这些功能给屏蔽掉了.记得上篇中Django模型模型安装小结中,我们把settings.py中的部分内容屏蔽了,并添加了一个app,如下 1 INSTALLED_APPS = ( 2 ## 'django.contrib.admin', 3 ## 'django.contrib.auth', 4 ## 'django.contrib.con

RabbitMQ后台管理界面

打开后台界面:http://localhost:15672/#/   右上角可以设置页面"刷新时间".以及选择监听的"虚拟主机". 界面有"概要"."连接"."通道"."分发器"."队列"."用户"等几个管理页签. Overview 概要就是RabbitMQ的基本信息 Totals里面有Unacked未确认的消息数 Nodes :其实就是支撑Rab

后台管理界面--管理页设计

本章我们开始进行后台管理界面的设计,本节课设计一下登录后的管理页. 一. 登录验证首先,创建一个数据库:easyui:其次,创建一个表:easyui_admin:然后,创建三个字段:id(自动编号).manager(管理员帐号).password(管理员密码).create(创建时间).//服务器端验证$.ajax({url : 'checklogin.php',type : 'POST',data : {manager : $('#manager').val(),password : $('#

vue搭建后台管理页面(点击左侧导航,切换右侧内容)

home.vue页面 <template> <div style="background-color: #EBEBEB;min-height:900px"> <div style="width:100%;background-color: #636363; overflow: hidden"> <span class="demonstration" style="float:left;paddi