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)始編寫代碼了。首先,我們需要導(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獲取用戶信息的函數(shù) if (to.matched.some(record => record.meta.requiresAuth)) { // 這個(gè)路由需要權(quán)限 if (!user || (to.meta.role && user !== to.meta.role)) { // 用戶未登錄或者角色不匹配 next({ path: '/about'}) // 重定向到登錄頁(yè)面 } else { // 用戶已登錄且角色匹配 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中l(wèi)et that=this的作用及說(shuō)明
這篇文章主要介紹了vue中l(wèi)et that=this的作用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10使用vue-cli webpack 快速搭建項(xiàng)目的代碼
這篇文章主要介紹了vue-cli webpack 快速搭建項(xiàng)目的教程詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11daisyUI解決TailwindCSS堆砌class問(wèn)題詳解
這篇文章主要為大家介紹了daisyUI解決TailwindCSS堆砌class問(wèn)題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07vue關(guān)于重置表單數(shù)據(jù)出現(xiàn)undefined的解決
這篇文章主要介紹了vue關(guān)于重置表單數(shù)據(jù)出現(xiàn)undefined的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09去除element-ui下拉框的下拉箭頭的實(shí)現(xiàn)
我們最開(kāi)始拿到的element-ui是帶有下拉箭頭的,那么如何去除element-ui下拉框的下拉箭頭的實(shí)現(xiàn),本文就詳細(xì)的介紹一下,感興趣的可以了解一下2023-08-08Vue 動(dòng)態(tài)設(shè)置路由參數(shù)的案例分析
這篇文章主要介紹了Vue 動(dòng)態(tài)設(shè)置路由參數(shù)的案例分析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-04-04uniapp中使用u-loadmore,loadText內(nèi)容不隨status改變刷新方式
這篇文章主要介紹了uniapp中使用u-loadmore,loadText內(nèi)容不隨status改變刷新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Vue3?watchEffect的使用教程和相關(guān)概念
Vue?3?引入了?Composition?API,其中?watchEffect?是一個(gè)非常強(qiáng)大的工具,用于響應(yīng)式地追蹤依賴項(xiàng)的變化,本文將詳細(xì)介紹?watchEffect?的使用方法和相關(guān)概念,文中有詳細(xì)的代碼供大家參考,需要的朋友可以參考下2024-08-08Vue Element前端應(yīng)用開(kāi)發(fā)之根據(jù)ABP后端接口實(shí)現(xiàn)前端展示
本篇著重介紹基于ABP后端接口信息,實(shí)現(xiàn)對(duì)前端界面的開(kāi)發(fā)工作。2021-05-05