日本国产欧美大码A视频 _国产高颜值极品在线视频_色偷偷亚洲第一综合网_国产精品一二三社区视频_久久久青草视频

IT培訓(xùn)-高端面授IT培訓(xùn)機(jī)構(gòu)
云和教育:云和數(shù)據(jù)集團(tuán)高端IT職業(yè)教育品牌
  • 國(guó)家級(jí)
    全民數(shù)字素養(yǎng)與技能培訓(xùn)基地
  • 河南省
    第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
  • 鄭州市
    數(shù)字技能人才(碼農(nóng))培養(yǎng)評(píng)價(jià)聯(lián)盟

Vue路由守衛(wèi)有哪些,怎么設(shè)置,有哪些使用場(chǎng)景?

  • 發(fā)布時(shí)間:
    2023-05-17
  • 版權(quán)所有:
    云和教育
  • 分享:

Vue 路由守衛(wèi)是在 Vue Router 中提供的一種功能,它允許您在導(dǎo)航到某個(gè)路由前、路由變化時(shí)或?qū)Ш诫x開(kāi)某個(gè)路由時(shí)執(zhí)行代碼。Vue 路由守衛(wèi)提供了以下幾種類(lèi)型:

1.全局前置守衛(wèi)

router.beforeEach 在進(jìn)入路由前執(zhí)行的鉤子函數(shù),它會(huì)接收三個(gè)參數(shù):to(要進(jìn)入的路由對(duì)象)、from(當(dāng)前導(dǎo)航正要離開(kāi)的路由對(duì)象)和 next(必須調(diào)用該函數(shù)才能進(jìn)入下一個(gè)鉤子)。

2.全局解析守衛(wèi)

router.beforeResolve 在路由解析之前執(zhí)行的鉤子函數(shù),也會(huì)接收 to、from 和 next 參數(shù)。與 beforeEach 的區(qū)別在于,該守衛(wèi)在全局守衛(wèi)中被最后調(diào)用,因此它在所有路由組件內(nèi)的守衛(wèi)和異步路由組件被解析之后才被調(diào)用。

3.全局后置鉤子

router.afterEach 在進(jìn)入路由后執(zhí)行的鉤子函數(shù),它不接收 next 函數(shù),也不能改變導(dǎo)航。

4.路由獨(dú)享守衛(wèi)

beforeEnter 在路由配置中定義的鉤子函數(shù),它會(huì)在路由被激活之前調(diào)用。它和全局前置守衛(wèi)的參數(shù)一樣,但是只對(duì)該路由生效。

5.組件內(nèi)的守衛(wèi)

·beforeRouteEnter:在路由進(jìn)入時(shí)異步加載組件前調(diào)用。

·beforeRouteUpdate:在當(dāng)前路由改變,但是該組件被復(fù)用時(shí)調(diào)用(例如,從 /users/1 導(dǎo)航到 /users/2 時(shí))。

·beforeRouteLeave:在離開(kāi)當(dāng)前路由時(shí)調(diào)用。

要設(shè)置路由守衛(wèi),可以在路由實(shí)例的配置對(duì)象中添加相應(yīng)的屬性。例如,設(shè)置全局前置守衛(wèi)可以這樣寫(xiě):

const router = new VueRouter({
  routes: [...],
})

router.beforeEach((to, from, next) => {
  // ...
})

  使用場(chǎng)景包括但不限于:

  1.驗(yàn)證用戶(hù)權(quán)限:在進(jìn)入某些頁(yè)面之前檢查用戶(hù)是否已登錄或是否有權(quán)限訪問(wèn)該頁(yè)面。

  2.加載數(shù)據(jù):在進(jìn)入頁(yè)面前加載必要的數(shù)據(jù),例如在組件內(nèi)使用 beforeRouteEnter 鉤子函數(shù)異步獲取數(shù)據(jù)。

  3.路由重定向:在進(jìn)入某些頁(yè)面時(shí)需要重定向到另一個(gè)頁(yè)面,例如在全局前置守衛(wèi)中檢查用戶(hù)是否已登錄并將未登錄用戶(hù)重定向到登錄頁(yè)面。

  4.路由攔截:在某些情況下需要取消路由導(dǎo)航,例如在組件內(nèi)使用 beforeRouteLeave 鉤子函數(shù)防止用戶(hù)誤操作離開(kāi)當(dāng)前頁(yè)面。