最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中的導(dǎo)航守衛(wèi)使用及說明

 更新時間:2023年01月20日 09:49:49   作者:AIpoem  
這篇文章主要介紹了vue中的導(dǎo)航守衛(wèi)使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

導(dǎo)航守衛(wèi)

  • 作用:對路由進(jìn)行權(quán)限控制
  • 分類:全局守衛(wèi)、獨享守衛(wèi)、組件內(nèi)守衛(wèi)

全局守衛(wèi)

const router = new VueRouter({
  routes: [
    {
      path: '/home',
      component: Home,
      meta: { isAuth: false },	// 不需要進(jìn)行權(quán)限控制
    },
     {
      path: '/user',
      component: User,
      meta: { isAuth: true },	// 需要進(jìn)行權(quán)限控制
    },
  ]
})
// 全局前置守衛(wèi):初始化時執(zhí)行/每次路由切換前執(zhí)行
router.beforeEach((to,from,next) => {
  if(to.meta.isAuth) {  // 判斷當(dāng)前路由是否需要進(jìn)行權(quán)限控制(在需要進(jìn)行權(quán)限控制的路由中配置isAuth屬性)
    if(localStorage.getItem('xxx') === 'xxx') { // 權(quán)限控制的具體規(guī)則
      next();   // 放行
    }else {
      ...
    }
  } else {  // 當(dāng)前路由不需要進(jìn)行權(quán)限控制
    next(); // 直接放行
  }
})
// 全局后置守衛(wèi):初始化時執(zhí)行,每次路由切換后執(zhí)行
router.afterEach((to,from) => {
  if(to.meta.title) {
    document.title = to.meta.title; // 修改網(wǎng)頁的title
  }else {
    document.title = 'xxx';
  }
})

獨享守衛(wèi)

加在某個路由的配置中

beforeEnter((to,from,next) => {
? if(to.meta.isAuth) { ?// 判斷當(dāng)前路由是否需要進(jìn)行權(quán)限控制(在需要進(jìn)行權(quán)限控制的路由中配置isAuth屬性)
? ? if(localStorage.getItem('xxx') === 'xxx') { // 權(quán)限控制的具體規(guī)則
? ? ? next(); ? // 放行
? ? }else {
? ? ? ...
? ? }
? } else { ?// 當(dāng)前路由不需要進(jìn)行權(quán)限控制
? ? next(); // 直接放行
? }
})

組件內(nèi)守衛(wèi)

// 進(jìn)入守衛(wèi),通過路由規(guī)則,進(jìn)入該組件時被調(diào)用
beforeRouteEnter(to,from,next){
  ...
}
// 當(dāng)前路由改變,但是該組件被復(fù)用時調(diào)用
// 舉例來說,對于一個帶有動態(tài)參數(shù)的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時候,
// 由于會渲染同樣的 Foo 組件,組件實例會被復(fù)用。而這個鉤子就會被調(diào)用
beforeRouteUpdate(to,from,next{
  ...
}
// 離開守衛(wèi),通過路由規(guī)則,離開該組件時被調(diào)用
beforeRouteLeave(to,from,next){
  ...
}

vue導(dǎo)航守衛(wèi)有哪些

路由的鉤子函數(shù)有六個

  • 全局的路由鉤子函數(shù):beforeEach、afterEach
  • 單個路由的鉤子函數(shù):beforeEnter
  • 組件內(nèi)路由鉤子函數(shù):beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave

全局路由鉤子函數(shù)

1、全局前置守衛(wèi): beforeEach(to, from, next)

router.beforeEach: 在每次每一個路由改變的時候都會執(zhí)行一遍

  • to:將要進(jìn)入的路由對象
  • from: 當(dāng)前正要離開的路由對象
  • next

next(),進(jìn)入下一個路由,必須調(diào)用,不然不會跳轉(zhuǎn)

next(false): 中斷當(dāng)前的導(dǎo)航。如果瀏覽器的 URL 改變了 (可能是用戶手動或者瀏覽器后退按鈕),那么 URL 地址會重置到 from 路由對應(yīng)的地址。

next(’/’) 或者 next({ paht:’/’}):跳轉(zhuǎn)到一個不同的地址。當(dāng)前的導(dǎo)航會被中斷,然后進(jìn)行一個新的導(dǎo)航。可傳遞的參數(shù)可以是 router-link 標(biāo)簽中的 to 屬性參數(shù)或 router.push 中的選項

應(yīng)用場景:可進(jìn)行一些頁面跳轉(zhuǎn)前處理,例如判斷需要登錄的頁面進(jìn)行攔截,做登錄跳轉(zhuǎn), 還有管理員權(quán)限判斷。

2、全局后置守衛(wèi):afterEach(to, from)

router.afterEach: 和 beforeEach 相反,它是在路由跳轉(zhuǎn)完成后觸發(fā),它發(fā)生在 beforeEach 之后 beforeRouteEnter(組件內(nèi)守衛(wèi)) 之前, 因為是跳轉(zhuǎn)完成后觸發(fā),所以沒有 next 參數(shù)。

路由內(nèi)的鉤子函數(shù)

路由獨享守衛(wèi):beforeEnter(to, from, next)

和 beforeEach 完全相同,如果兩個都設(shè)置了,beforeEnter 則在 beforeEach 之后緊隨執(zhí)行。在路由配置上直接定義 beforeEnter 守衛(wèi)

組件內(nèi)的鉤子函數(shù)

是指在組件內(nèi)執(zhí)行的鉤子函數(shù),類似于組件內(nèi)的生命周期

  • 組件前置守衛(wèi) beforeRouteEnter: 該鉤子在全局守衛(wèi) beforeEach 和獨享守衛(wèi) beforeEnter 之后。
  • 組件更新守衛(wèi) beforeRouteUpdate:在當(dāng)前路由改變時,并且該組件被復(fù)用時調(diào)用。
  • 組件離開守衛(wèi) beforeRouteLeave:導(dǎo)航離開該組件的對應(yīng)路由時調(diào)用
const Foo = {
  template: `...`,
  beforeRouteEnter (to, from, next) {
    // 在渲染該組件的對應(yīng)路由被 confirm 前調(diào)用
    // 不!能!獲取組件實例 `this`
    // 因為當(dāng)鉤子執(zhí)行前,組件實例還沒被創(chuàng)建
  },
  beforeRouteUpdate (to, from, next) {
    // 在當(dāng)前路由改變,但是該組件被復(fù)用時調(diào)用
    // 舉例來說,對于一個帶有動態(tài)參數(shù)的路徑 /foo/:id,在 /foo/1 和 /foo/2 之間跳轉(zhuǎn)的時候,
    // 由于會渲染同樣的 Foo 組件,因此組件實例會被復(fù)用。而這個鉤子就會在這個情況下被調(diào)用。
    // 可以訪問組件實例 `this`
  },
  beforeRouteLeave (to, from, next) {
    // 導(dǎo)航離開該組件的對應(yīng)路由時調(diào)用
    // 可以訪問組件實例 `this`
  }

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue隱藏路由的實現(xiàn)方法

    vue隱藏路由的實現(xiàn)方法

    這篇文章主要介紹了vue隱藏路由的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 在Vue2中v-model和.sync區(qū)別解析

    在Vue2中v-model和.sync區(qū)別解析

    在vue2中提供了.sync修飾符,但是在vue3中不再支持.sync,取而代之的是v-model,本文給大家介紹在Vue2中v-model和.sync區(qū)別,感興趣的朋友一起看看吧
    2023-10-10
  • Vue2.0在IE11版本瀏覽器中的兼容性問題

    Vue2.0在IE11版本瀏覽器中的兼容性問題

    這篇文章主要介紹了Vue2.0在IE11版本瀏覽器中的兼容性問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue如何自定義地址設(shè)置@

    vue如何自定義地址設(shè)置@

    這篇文章主要介紹了vue如何自定義地址設(shè)置@,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 淺談Vue服務(wù)端渲染框架Nuxt的那些事

    淺談Vue服務(wù)端渲染框架Nuxt的那些事

    這篇文章主要介紹了淺談Vue服務(wù)端渲染框架Nuxt的那些事,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 詳解Vue2 SSR 緩存 Api 數(shù)據(jù)

    詳解Vue2 SSR 緩存 Api 數(shù)據(jù)

    本篇文章主要介紹了Vue2 SSR 緩存 Api 數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 關(guān)于uniapp的高級表單組件mosowe-form

    關(guān)于uniapp的高級表單組件mosowe-form

    這篇文章主要介紹了關(guān)于uniapp的高級表單組件mosowe-form,由于一些表單標(biāo)簽改來改去比較繁瑣,重復(fù)性很多,且樣式布局啥的幾乎萬變不離其中,為了偷懶,開發(fā)了mosowe-form及mosowe-table兩款高級組件,需要的朋友可以參考下
    2023-04-04
  • vue中PC端地址跳轉(zhuǎn)移動端的操作方法

    vue中PC端地址跳轉(zhuǎn)移動端的操作方法

    最近小編接到一個項目pc端和移動端是兩個獨立的項目,兩個項目項目中的內(nèi)容基本相同,鏈接組合的方式都有規(guī)律可循,接到的需求便是在移動端訪問pc端的URL連接時,重定向至移動端對應(yīng)頁面,下面小編給大家分享實現(xiàn)過程,一起看看吧
    2021-11-11
  • Vue+Express實現(xiàn)登錄狀態(tài)權(quán)限驗證的示例代碼

    Vue+Express實現(xiàn)登錄狀態(tài)權(quán)限驗證的示例代碼

    這篇文章主要介紹了Vue+Express實現(xiàn)登錄狀態(tài)權(quán)限驗證的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Vue/React子組件實例暴露方法(TypeScript)

    Vue/React子組件實例暴露方法(TypeScript)

    最近幾個月都在用TS開發(fā)各種項目,框架有涉及到Vue3,React18等,記錄一下Vue/React組件暴露出變量/函數(shù)的方法的寫法,對vue?react組件暴露方法相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2022-11-11

最新評論

株洲县| 沙坪坝区| 二连浩特市| 荥阳市| 东辽县| 钟山县| 博乐市| 噶尔县| 酒泉市| 班玛县| 江达县| 巴青县| 恩平市| 松滋市| 耒阳市| 武安市| 通道| 融水| 南昌市| 邳州市| 区。| 辰溪县| 黎川县| 孝义市| 苗栗县| 瓮安县| 乐昌市| 丹江口市| 汶川县| 兖州市| 武邑县| 舒兰市| 四会市| 伊宁市| 盘山县| 会东县| 板桥市| 郸城县| 泰来县| 仁寿县| 大名县|