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屬性來指定該路由是否需要認證以及對應(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)渲染與當前活躍路由匹配的組件

到此這篇關(guān)于Vue3使用Vue Router實現(xiàn)前端路由控制的文章就介紹到這了,更多相關(guān)Vue3 Vue Router路由控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
daisyUI解決TailwindCSS堆砌class問題詳解
這篇文章主要為大家介紹了daisyUI解決TailwindCSS堆砌class問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07
vue關(guān)于重置表單數(shù)據(jù)出現(xiàn)undefined的解決
這篇文章主要介紹了vue關(guān)于重置表單數(shù)據(jù)出現(xiàn)undefined的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue 動態(tài)設(shè)置路由參數(shù)的案例分析
這篇文章主要介紹了Vue 動態(tài)設(shè)置路由參數(shù)的案例分析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-04-04
uniapp中使用u-loadmore,loadText內(nèi)容不隨status改變刷新方式
這篇文章主要介紹了uniapp中使用u-loadmore,loadText內(nèi)容不隨status改變刷新方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Vue3?watchEffect的使用教程和相關(guān)概念
Vue?3?引入了?Composition?API,其中?watchEffect?是一個非常強大的工具,用于響應(yīng)式地追蹤依賴項的變化,本文將詳細介紹?watchEffect?的使用方法和相關(guān)概念,文中有詳細的代碼供大家參考,需要的朋友可以參考下2024-08-08
Vue Element前端應(yīng)用開發(fā)之根據(jù)ABP后端接口實現(xiàn)前端展示
本篇著重介紹基于ABP后端接口信息,實現(xiàn)對前端界面的開發(fā)工作。2021-05-05

