Vue3使用Vue Router實(shí)現(xiàn)前端路由控制
Vue3 使用 Vue Router實(shí)現(xiàn)前端路由控制
首先,我們需要安裝Vue Router。在項(xiàng)目根目錄下運(yùn)行以下命令:
npm install vue-router@next
安裝完成后,我們可以開(kāi)始編寫(xiě)代碼了。首先,我們需要導(dǎo)入createRouter和createWebHistory函數(shù),以及我們自定義的視圖組件。
import HomeView from '../views/HomeView.vue' import AdminView from '@/views/AdminView.vue' import AboutView from '../views/AboutView.vue' import ChildenList from '@/views/childenList.vue'
接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)路由實(shí)例,并配置我們的路由規(guī)則。在這個(gè)例子中,我們有三個(gè)主頁(yè)面:首頁(yè)(HomeView)、關(guān)于頁(yè)面(AboutView)和管理員頁(yè)面(AdminView)。我們還定義了一個(gè)子路由(ChildenList),用于顯示關(guān)于頁(yè)面下的子頁(yè)面。
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
children: [
{
path: 'ChildenList',
name: 'ChildenList',
component: ChildenList,
meta: { requiresAuth: true, role: 'admin' }
}],
// component:AboutView,
},
{
path: '/admin',
name: 'admin',
component:AdminView,
meta: { requiresAuth: true, role: 'admin' }
}
]
為了實(shí)現(xiàn)權(quán)限控制,我們需要在路由守衛(wèi)中添加一些邏輯。在每個(gè)路由規(guī)則中,我們可以添加一個(gè)meta屬性來(lái)指定該路由是否需要認(rèn)證以及對(duì)應(yīng)的角色。在這個(gè)例子中,我們?yōu)?code>/about和/admin路由設(shè)置了requiresAuth和role屬性
router.beforeEach((to, from, next) => {
const user = "name" // 假設(shè)這是從localStorage獲取用戶(hù)信息的函數(shù)
if (to.matched.some(record => record.meta.requiresAuth)) {
// 這個(gè)路由需要權(quán)限
if (!user || (to.meta.role && user !== to.meta.role)) {
// 用戶(hù)未登錄或者角色不匹配
next({ path: '/about'}) // 重定向到登錄頁(yè)面
} else {
// 用戶(hù)已登錄且角色匹配
next()
}
} else {
// 這個(gè)路由不需要權(quán)限
next()
}
})
最后將router導(dǎo)出
export default router
在main.js/main.ts引入

最后掛載routerView用于動(dòng)態(tài)渲染與當(dāng)前活躍路由匹配的組件

到此這篇關(guān)于Vue3使用Vue Router實(shí)現(xiàn)前端路由控制的文章就介紹到這了,更多相關(guān)Vue3 Vue Router路由控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中的provide/inject的學(xué)習(xí)使用
本篇文章主要介紹了vue中的provide/inject的學(xué)習(xí)使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Vue移動(dòng)端項(xiàng)目實(shí)現(xiàn)使用手機(jī)預(yù)覽調(diào)試操作
這篇文章主要介紹了Vue移動(dòng)端項(xiàng)目實(shí)現(xiàn)使用手機(jī)預(yù)覽調(diào)試操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Vue實(shí)現(xiàn)一個(gè)動(dòng)態(tài)添加行的表格步驟詳解
在Vue組件中定義表格的數(shù)據(jù)模型,通常使用一個(gè)數(shù)組來(lái)存儲(chǔ)表格的數(shù)據(jù),每一行數(shù)據(jù)可以是一個(gè)對(duì)象,對(duì)象的屬性對(duì)應(yīng)表格的列,這篇文章主要介紹了Vue實(shí)現(xiàn)一個(gè)動(dòng)態(tài)添加行的表格步驟詳解,需要的朋友可以參考下2024-05-05
關(guān)于Element-ui中Table表格無(wú)法顯示的問(wèn)題及解決
這篇文章主要介紹了關(guān)于Element-ui中Table表格無(wú)法顯示的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
nuxt 實(shí)現(xiàn)在其它js文件中使用store的方式
這篇文章主要介紹了nuxt 實(shí)現(xiàn)在其它js文件中使用store的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo
這篇文章主要為大家介紹了解決element-ui?el-drawer抽屜el-dialog彈框關(guān)閉優(yōu)化demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-06-06

