Vue+EelementUI实现快速搭建后台管理系统框架,并且实现页面件的路由跳转

简介: Vue+EelementUI实现快速搭建后台管理系统框架,并且实现页面件的路由跳转

EelementUI 搭建项目框架+页面路由跳转


一、整体布局示意图、总体布局 Main.vue组件、index.js总路由

image.png


1、Main.vue 组件,所有框架组件的父组件

<template>
    <div id="main">
        <!-- 头部 -->
               <!-- 高为80px  -->
        <el-header style="padding:0px; height: 80px;">
            <!-- 直接写死头部组件(因为:这块区域只显示头部组件) -->
            <Header></Header>
        </el-header>
        <!-- 侧边、内容区 -->
           <!-- 宽为100%,高为,100%减去头部的高, calc:计算函数,减号两边必须要有一个空格-->
        <el-container style="width:100%;height:calc(100% - 80px);">
            <!-- 侧边栏 -->
                 <!-- 宽为12%,高为100% -->
            <el-aside style="width: 12%; height: 100%;">
                  <!-- 直接写死侧边栏组件(因为:这块区域只显侧边栏组件) -->
                <Aside></Aside>
            </el-aside>
            <!-- 内容显示区:(首页、用户管理) -->
                    <!-- 宽为88%,高为100% -->
            <el-main style="padding:0px; width: 88%; height: 100%;">
                <!-- 这里不能单独写,首页组件或用户管理组件 ,因为需要来回切换,不能写死-->
                <router-view></router-view>
            </el-main>
        </el-container>
    </div>
</template>
<script>
    //导入首页组件
import Header from "../components/Header.vue";
//导入侧边栏组件
import Aside from "@/components/Aside.vue";
//导出组件,可以使其他组件导入本组件
export default {
    name: 'main',
    //导入相应组件后注册组件
    components: {
        Header,
        Aside,
    }
}
</script>
<style>
#main {
    margin: 0px;
    padding: 0px;
    height: 100%;
    width: 100%;
}
.el-header {
    width: 100%;
    height: 200px;
    padding: 0px;
}
</style>


2、index.js 总路由配置文件,所有能路径的组件,都要在这里配置。

import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
//路由设置
const routes = [
  {
    //路由访问路径:根路径,
    path: '/',
    //路由名字
    name: 'Main',
    //导入并注册路由,路径为组件的位置
    component: () => import('../views/Main.vue'),
    //页面重定向,我们在访问根路径时,会跳转到 "/home” 路径访问对应的页面,这里就是在内容显示区加载首页的页面
    redirect:"/home",
    //子组件:这里是,Main组件下包含有 Home、User 子组件
    children:[
      //首页的路由信息
      {
        path: 'home',
        name: 'Home',
        component: () => import('../pages/home/Home.vue'),
      },
      //用户管理路由的信息
      {
        path: 'user',
        name: 'User',
        component: () => import('../pages/user/User.vue'),
      },
    ]
  },
//和Main组件同级的登陆组件,是全屏展示的
{
  path:"/login",
  name:"Login",
  component:()=>import('../views/login/login.vue')
}
]
const router = new VueRouter({
  routes
})
export default router


二、框架组件(头部、侧边栏)

1、Header.vue 头部组件

<template>
    <!-- logo和文字 -->
    <div class="header">
        <a href="#">
            <span class="company">商品管理系统</span>
        </a>
        <!--  下拉菜单-->
        <div>
            <el-dropdown @command="handleCommand">
                <!--  绑定指令,在methods里定义-->
                <span class="el-dropdown-link">
                    <!-- 您好 -->
                    <div class="demo-type">
                        <div>
                            <el-avatar src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png">
                            </el-avatar>
                        </div>
                    </div>
                </span>
                <el-dropdown-menu slot="dropdown">
                    <!-- icon是修改图标 ,command是点击后传给方法的值-->
                    <el-dropdown-item icon="el-icon-edit" command="个人信息">个人信息</el-dropdown-item>
                         <!-- 在调用方法时一定要按照格式:@click.native=“” 书写-->
                    <!--  quitLogin() 方法,退出登陆-->
                    <el-dropdown-item icon="el-icon-s-operation"  command="欢迎下来光临!" @click.native="quitLogin()">退出登录</el-dropdown-item>
                </el-dropdown-menu>
            </el-dropdown>
        </div>
        <!--  下拉菜单结束-->
    </div>
</template>
<script>
export default {
    name: 'Header',
    methods: {
        handleCommand(command) {
            this.$message(`${command}`)
        },
        quitLogin(){
            //通过在 index.js 中为登陆组件写的路由名字,进行路由的跳转
           this.$router.push('Login');
        }
    },
}
</script>


2、Aside.vue 侧边栏组件

<template>
  <div id="aside">
    <el-row class="tac">
      <el-col :span="24" style="border-right: solid 1px #FFFFFF;">
        <!-- min-height:calc(100vh - 80px); 是通过设置最小高度,100vh代表试图的总高(100%),减去头部视图的高 -->
        <!-- default-active :默认高亮的按钮 -->
        <!-- router 路由 -->
        <el-menu style="min-height: calc(100vh - 80px);" default-active="home" class="el-menu-vertical-demo" router
          @open="handleOpen" @close="handleClose">
 <!-- index='home' : 表示跳转的组件路由,这里跳转的是主页的组件路由,名字是在 index.js 里面设置的 -->
          <el-menu-item index="home">
            <i class="el-icon-s-home"></i>
            <span slot="title">首页</span>
          </el-menu-item>
          <!-- index='home' : 表示跳转的组件路由,这里跳转的是用户的组件路由 -->
          <el-menu-item index="user">
            <i class="el-icon-s-custom"></i>
            <span slot="title">用户管理</span>
          </el-menu-item>
        </el-menu>
      </el-col>
    </el-row>
  </div>
</template>
<script>
export default {
  name: 'Aside',
  methods: {
    handleOpen(key, keyPath) {
      console.log(key, keyPath);
    },
    handleClose(key, keyPath) {
      console.log(key, keyPath);
    }
  }
}
</script>
<style>
#aside {
  height: 100%;
  border-right: solid 1px rgb(173, 173, 173);
}
</style>


三、展示区域组件和登陆组件

1、Home.vue 首页组件

点击侧边栏的首页跳转这里


<template>
<h1>
    这是首页组件
</h1>
</template>
<script>
   export default{
    name:"Home"
   }
</script>

image.png


2、User.vue 用户管理组件

点击侧边栏的用户管理跳转到这里


<template>
<h1>
    这是用户管理组件
</h1>
</template>
<script>
   export default{
    name:"User"
   }
</script>


3、登陆组件

点击头部的退出登陆按钮,跳转到这里。


<template>
<h1>
    这是登陆组件
</h1>
</template>
<script>
   export default{
    name:"Login"
   }
</script>

image.png




相关文章
|
17天前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
17天前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
17天前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能
|
JavaScript Go
|
JavaScript C语言 Go
|
19天前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
20天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
23 1
vue学习第一章
|
20天前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
22 1
vue学习第三章
|
20天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章
|
20天前
|
JavaScript 前端开发 算法
vue学习第7章(循环)
欢迎来到瑞雨溪的博客,一名热爱JavaScript和Vue的大一学生。本文介绍了Vue中的v-for指令,包括遍历数组和对象、使用key以及数组的响应式方法等内容,并附有综合练习实例。关注我,将持续更新更多优质文章!🎉🎉🎉
21 1
vue学习第7章(循环)

相关实验场景

更多