參考資料
1:router-link和router-view的區(qū)別
在App.vue里面
router-link相當于是a標簽 账月,to="路由path"
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
router-view:展示路由對應的組件內(nèi)容
在views底下新建一個組件LayOut
<template>
<div>
<p>導航</p>
</div>
</template>
<script>
export default {
name:"layout",
setup() {
},
}
</script>
并且打開router/index.js配置路由
在瀏覽器里面查看
router-view:展示路由對應的組件內(nèi)容
2:嵌套路由/子路由
createWebHasHistory:哈希路由 訪問路徑 有#
createWebHistory:history模式路由 訪問路徑 無#
在views底下新建一個角色列表頁和用戶列表頁
roleList.vue
<template>
<div>
<h1>角色列表</h1>
</div>
</template>
<script>
export default {
name:"role",
setup() {
},
}
</script>
userList.vue
<template>
<div>
<h1>用戶列表</h1>
</div>
</template>
<script>
export default {
name:"user",
setup() {
},
}
</script>
在router/index.js里面,添加路由
//嵌套路由/子路由
children:[
{
path:"/index",
name:"role",
component:()=>import('../views/pages/roleList.vue'),
},{
path:"/user",
name:"user",
component:()=>import('../views/pages/userList.vue'),
}
]
index.js
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
const routes = [
{
path: '/',
name: 'layOut',
redirect: "/index",//重定向 進來就自動默認到index路徑
component: () => import('../views/LayOut/LayOut.vue'),
//嵌套路由/子路由
children: [
{
path: "/role",
name: "role",
component: () => import('../views/pages/roleList.vue'),
}, {
path: "/user",
name: "user",
component: () => import('../views/pages/userList.vue'),
}
]
},
{
path: '/home',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
}
]
const router = createRouter({
history: createWebHistory(process.env.BASE_URL),
routes
})
export default router
側(cè)邊欄導航
vue3搭配Element Plus框架使用
Element Plus基于 Vue 3诞外,面向設計師和開發(fā)者的組件庫
文檔:https://element-plus.gitee.io/zh-CN/
安裝
# NPM
$ npm install element-plus --save
圖片.png
安裝完成之后開始引入
打開main.js的文件
這里接口文檔上是有說明的 棠耕,直接根據(jù)文檔上的教程來寫
圖片.png
main.js
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
import router from './router'
import store from './store'
createApp(App).use(store).use(router).use(ElementPlus).mount('#app')
開始使用組件里面的布局
后臺管理的布局
直接復制代碼即可
<div class="common-layout">
<el-container>
<el-header>Header</el-header>
<el-container>
<el-aside width="200px">Aside</el-aside>
<el-main>Main</el-main>
</el-container>
</el-container>
</div>
LayOut.vue
<template>
<div>
<div class="common-layout">
<el-container>
<el-header>Header</el-header>
<el-container>
<el-aside width="200px">
<router-link to="/index">角色列表</router-link>
<router-link to="/user">用戶列表</router-link></el-aside
>
<el-main><router-view></router-view></el-main>
</el-container>
</el-container>
</div>
</div>
</template>
<script>
export default {
name: "layout",
setup() {},
};
</script>