一、 Vue使用vue-router,Element
-
安装
vue-router
npm install vue-router@next --save
-
修改
main.js
import {createApp} from 'vue' import App from './App.vue' import router from './router' const app = createApp(App) app.use(router) app.mount('#app')
-
src目录下新建文件夹
router
,新建
router/index.js
如下:import {createRouter, createWebHashHistory} from "vue-router" import Houtai from "../components/Houtai"; const routes = [ { path: '/', component: Houtai }, ] export const router = createRouter({ history: createWebHashHistory(), routes: routes }) export default router
-
修改
App.vue
<template> <router-view></router-view> </template> <script> export default { name: 'App', } </script>
- 引入ElementUI
npm install element-plus --save
-
main.js
最终import {createApp} from 'vue' import App from './App.vue' import router from './router' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' const app = createApp(App) app.use(ElementPlus) app.use(router).mount('#app'); ``
-
router/index.js
const routes = [ { path: '/', name: '后台', component: Houtai, show: true, children: [ { path: '/test1', name: '测试一', show: true, component: Test1 }, { path: '/test2', name: '测试二', show: true, component: Test2 } ] } ]
-
Houtai.vue
部分代码直接来自: element官方网站
<template>
<el-container style="height: 500px; border: 1px solid #eee">
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
<el-menu router :default-openeds="['0', '1']">
<div v-for="(item,index) in $router.options.routes" :key="index">
<el-sub-menu :index="index+''" v-if="item.show">
<template #title><i class="el-icon-message"></i>{{ item.name }}</template>
<div v-for="item2 in item.children" :key="item2">
<el-menu-item :index="item2.path" :class="$route.path==item2.path?'is-active':' '" v-if="item2.show">
{{ item2.name }}
</el-menu-item>
</div>
</el-sub-menu>
</div>
</el-menu>
</el-aside>
<el-container>
<el-header style="text-align: right; font-size: 12px">
<el-dropdown>
<i class="el-icon-setting" style="margin-right: 15px"></i>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item>查看</el-dropdown-item>
<el-dropdown-item>新增</el-dropdown-item>
<el-dropdown-item>删除</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<span>王小虎</span>
</el-header>
<el-main>
<router-view></router-view>
</el-main>
</el-container>
</el-container>
</template>
运行后打开浏览器
只要改变show的属性,就可以实现动态展示