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

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

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

