首先在项目中添加Element UI
npm i element-ui -S
知识兔修改main.js
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import App from './App'
import router from './router'
Vue.config.productionTip = false
Vue.use(ElementUI)
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
知识兔HelloWorld.vue
<template>
<div class="indexPage">
<div class="containerWrapper">
<div class="sidebarWrapper">
<el-menu default-active="1-4-1" class="el-menu-vertical-demo" @open="handleOpen" @close="handleClose" :collapse="collapseStatus">
<el-menu-item index="0">
<i class="el-icon-menu"></i>
<span slot="title">工作平台</span>
</el-menu-item>
<el-submenu index="1">
<template slot="title">
<i class="el-icon-location"></i>
<span slot="title">导航一</span>
</template>
<el-menu-item-group>
<span slot="title">分组一</span>
<el-menu-item index="1-1">选项1</el-menu-item>
<el-menu-item index="1-2">选项2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="分组2">
<el-menu-item index="1-3">选项3</el-menu-item>
</el-menu-item-group>
<el-submenu index="1-4">
<span slot="title">选项4</span>
<el-menu-item index="1-4-1">选项1</el-menu-item>
</el-submenu>
</el-submenu>
<el-menu-item index="/demo" @click="goTo('/demo')">
<i class="el-icon-menu"></i>
<span slot="title">导航二</span>
</el-menu-item>
<el-menu-item index="/demo3" @click="goTo('/demo3')">
<i class="el-icon-document"></i>
<span slot="title">导航三</span>
</el-menu-item>
<el-menu-item index="4">
<i class="el-icon-setting"></i>
<span slot="title">导航四</span>
</el-menu-item>
</el-menu>
</div>
<div class="contentWrapper">
<div class="mainHeader">
<!--侧边导航栏控制按钮-->
<span><i class="el-icon-s-fold" @click="handleFold()"></i></span>
<div class="userCenter">
<el-link :underline="false" href="https://zhishitu.com" style="color: #800000;">"https://www.baidu.com" class="username">Admin</el-link>
<el-avatar :size="40" :src="avaUrl"></el-avatar>
</div>
</div>
<div class="mainContent">
<router-view></router-view>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
isCollapse: false,
collapseStatus: false,
avaUrl: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png'
}
},
methods: {
handleOpen (key, keyPath) {
console.log(key, keyPath)
},
handleClose (key, keyPath) {
console.log(key, keyPath)
},
handleFold () {
this.collapseStatus = !this.collapseStatus
},
goTo (path) {
this.$router.replace(path)
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.containerWrapper{
display: flex;
flex-direction: row;
}
.sidebarWrapper{/*设置侧边栏导航高度*/
min-height: 100vh;
}
.el-menu-vertical-demo:not(.el-menu--collapse) {/*设置侧边栏不折叠的宽度*/
width: 250px;
height: 100%;
}
.el-menu--collapse{/*设置侧边栏折叠后的高度*/
height: 100%;
}
.indexPage .el-aside{
width: 300px;/*设置侧边导航栏宽度*/
overflow-x: hidden;
overflow-y: hidden;
}
.contentWrapper{/*设置内容区包裹样式*/
flex: 1;
min-height: 100vh;
}
.mainHeader{/*头部样式设置*/
height: 56px;
padding: 0 10px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.mainContent{/*内容区样式设置*/
padding: 0 10px;
background: #F0F2F5;
height: 100%;
}
.userCenter{/*头部右侧个人中心*/
display: flex;
align-items: center;
}
.userCenter .username{
margin-right: 15px;
}
</style>
知识兔Demo.vue目标页面代码
<template>
<div class="Demo">
<h1>样例页面二</h1>
</div>
</template>
<script>
export default {
name: 'Demo',
data () {
return {}
}
}
</script>
<style scoped>
</style>
知识兔router/index.js路由代码为
1 import Vue from 'vue'
2 import Router from 'vue-router'
3 import HelloWorld from '@/components/HelloWorld'
4 import Demo from '../components/Demo'
5 import Demo3 from '../components/Demo3'
6
7 Vue.use(Router)
8
9 export default new Router({
10 // 为了去掉吗默认情况下路由中出现的#号
11 mode: 'history',
12 routes: [
13 {
14 path: '/',
15 name: 'HelloWorld',
16 component: HelloWorld,
17 children: [
18 {
19 path: '/demo',
20 name: 'Demo',
21 component: Demo
22 },
23 {
24 path: '/demo3',
25 name: 'Demo3',
26 component: Demo3
27 }
28 ]
29 }
30 ]
31 })
知识兔