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

vue-router的導航守衛(wèi)使用最新講解

 更新時間:2022年12月16日 16:36:03   作者:亦世凡華、  
這篇文章主要介紹了vue-router的導航守衛(wèi)使用講解,vue-router提供了許多編程式導航的API,其中最常見的導航API有很多種,本文給大家詳細講解,需要的朋友可以參考下

前言

在瀏覽器中點擊鏈接實現(xiàn)導航的方式,叫做聲明式導航。例如:普通網(wǎng)頁中點擊<a>鏈接、vue項目中點擊<router-link>都屬于聲明式導航。

在瀏覽器中調(diào)用API方法實現(xiàn)的導航方式,叫做編程式導航。例如:普通網(wǎng)頁中調(diào)用loaction.href跳轉到新頁面的方式,屬于編程式導航。

vue-router中編程式導航API

編程式路由導航作用就是不借助<router-link>實現(xiàn)路由跳轉,讓路由跳轉更加靈活。

vue-router提供了許多編程式導航的API,其中最常見的導航API有以下幾種:

1)this.$router.push('hash地址')

跳轉到指定的 hash 地址,并增加一條歷史記錄。

2)this.$router.replace('hash地址')

跳轉到指定的 hash 地址,并替換掉當前的歷史記錄。

3)this.$router.go(數(shù)值n)

調(diào)用this.$router.go()方法,可以在瀏覽歷史中前進和后退

在實際開發(fā)中,一般只會前進和后退一層頁面。因此 vue-router 提供了如下兩個便捷方法:

1)$router.back() 在歷史記錄中,后退到上一個頁面。

2)$router.forward() 在歷史記錄中,前進到下一個頁面。

這兩個方法一般可以放在行內(nèi)樣式里面使用,更便捷一點,注意:行內(nèi)樣式里面就不必再寫this了

導航守衛(wèi)

導航守衛(wèi)也叫路由守衛(wèi),可以控制路由的訪問權限,示意圖如下:

全局守衛(wèi)

全局前置守衛(wèi):每次發(fā)生路由的導航跳轉時,都會觸發(fā)全局前置守衛(wèi)。因此,在全局前置守衛(wèi)中,程序員可以對每個路由進行訪問權限的控制,那么如何創(chuàng)建全局前置守衛(wèi)呢?如下:

全局前置守衛(wèi)的回調(diào)函數(shù)中接收3個形參,如上圖所示,其作用為:

to:是將要訪問的路由的信息對象

from:是將要離開的路由的信息對象

next:是一個函數(shù),調(diào)用 next() 表示放行,允許這次路由導航

next函數(shù)的3種調(diào)用方式:如下圖所示

控制后臺主頁的訪問權限

router.beforeEach(function (to, from, next) {
  if (to.path === '/main') {
    // 要訪問后臺主頁,需要判斷是否有token
    const token = localStorage.getItem('token')
    if (token) { // token值存在
      next()
    } else {
      // 沒有登錄,強制跳轉到登錄頁
      next('/login')
    }
  } else {
    next() // 訪問的不是后臺主頁,直接放行
  }
})

當然我們也可以通過全局前置守衛(wèi)來進行權限的查看,案例如下:

// 全局前置守衛(wèi):初始化時、每次路由切換前執(zhí)行
router.beforeEach((to, from, next) => {
  console.log('beforeEach', to, from)
  if (to.meta.isAuth) { // 判斷當前路由是否需要進行權限控制
    if (localStorage.getItem('token') === 'key') { // 權限控制的具體規(guī)則
      next() // 放行
    } else {
      alert('暫無權限查看')
    }
  } else {
    next() // 放行
  }
})

全局后置守衛(wèi): 全局后置守衛(wèi)相對于前置守衛(wèi)使用的次數(shù)相對較少,后置守衛(wèi)一般使用在項目的title實時發(fā)送變化時來使用。

// 全局后置守衛(wèi),初始化時執(zhí)行、每次路由切換后執(zhí)行
router.afterEach((to, from) => {
  console.log('afterEach', to, from)
  if (to.meta.title) {
    document.title = to.meta.title // 修改網(wǎng)頁的title
  } else {
    document.title = 'process'
  }
})

獨享路由守衛(wèi)

顧名思義獨享路由守衛(wèi)就是某一個路由獨享的,和其他路由沒關系。如下:

beforeEnter (to, from, next) {
  console.log('beforeEach', to, from)
  if (to.meta.isAuth) { // 判斷當前路由是否需要進行權限控制
    if (localStorage.getItem('admin') === 'admin123') { // 權限控制的具體規(guī)則
      next() // 放行
    } else {
      alert('暫無權限查看')
    }
  } else {
    next() // 放行
  }
}

組件路由守衛(wèi)

顧名思義是在組件內(nèi)部使用的守衛(wèi)。如下:使用方式和上文一樣,這里不在贅述。

// 通過路由規(guī)則,進入該組件時被調(diào)用
beforeRouteEnter (to, from, next) { },
// 通過路由規(guī)則,離開該組件時被調(diào)用
beforeRouteLeave (to, from, next) { }

當然,作者講解的也不是太全面,如果你想更細致的了解vue-router的導航守衛(wèi),推薦看一下官方文檔對導航守衛(wèi)的說明:導航守衛(wèi)官方說明 。

到此這篇關于vue-router的導航守衛(wèi)使用講解的文章就介紹到這了,更多相關vue-router的導航守衛(wèi)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解vue中使用微信jssdk

    詳解vue中使用微信jssdk

    這篇文章主要介紹了vue中使用微信jssdk,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Vue Cli項目重構為Vite的方法步驟

    Vue Cli項目重構為Vite的方法步驟

    本文主要介紹了Vue Cli項目重構為Vite的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • element ui table(表格)實現(xiàn)點擊一行展開功能

    element ui table(表格)實現(xiàn)點擊一行展開功能

    這篇文章主要給大家介紹了關于element ui table(表格)實現(xiàn)點擊一行展開功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • Vue之過濾器詳解

    Vue之過濾器詳解

    這篇文章主要為大家介紹了Vue之過濾器,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助,希望能夠給你帶來幫助
    2021-11-11
  • 如何利用vue實現(xiàn)登陸界面及其跳轉詳解

    如何利用vue實現(xiàn)登陸界面及其跳轉詳解

    在開發(fā)中我們經(jīng)常遇到這樣的需求,需要用戶直接點擊一個鏈接進入到一個頁面,下面這篇文章主要給大家介紹了關于如何利用vue實現(xiàn)登陸界面及其跳轉的相關資料,需要的朋友可以參考下
    2023-04-04
  • 深入解析Vue源碼實例掛載與編譯流程實現(xiàn)思路詳解

    深入解析Vue源碼實例掛載與編譯流程實現(xiàn)思路詳解

    這篇文章主要介紹了Vue源碼實例掛載與編譯流程實現(xiàn)思路詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Ant Design Vue全局對話確認框(confirm)的回調(diào)不觸發(fā)

    Ant Design Vue全局對話確認框(confirm)的回調(diào)不觸發(fā)

    這篇文章主要介紹了Ant Design Vue全局對話確認框(confirm)的回調(diào)不觸發(fā)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue混合文件使用以及ref的引用實例詳解

    Vue混合文件使用以及ref的引用實例詳解

    ref用來輔助開發(fā)者在不依賴于jQuery的情況下,獲取DOM元素或組件的引用,下面這篇文章主要給大家介紹了關于Vue混合文件使用以及ref的引用的相關資料,需要的朋友可以參考下
    2022-12-12
  • vue的滾動條插件實現(xiàn)代碼

    vue的滾動條插件實現(xiàn)代碼

    這篇文章主要介紹了vue的滾動條插件實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • vue router2.0二級路由的簡單使用

    vue router2.0二級路由的簡單使用

    這篇文章主要為大家詳細介紹了vue router2.0二級路由的簡單使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論

沾益县| 葫芦岛市| 柯坪县| 北票市| 五河县| 井冈山市| 瑞金市| 镶黄旗| 治县。| 大田县| 南溪县| 当涂县| 江西省| 横峰县| 株洲市| 崇左市| 太仆寺旗| 西乡县| 喀喇| 额尔古纳市| 嵊泗县| 绵阳市| 阿巴嘎旗| 镇江市| 惠安县| 霍州市| 达拉特旗| 体育| 南昌县| 兰西县| 乌鲁木齐县| 霍州市| 扎囊县| 原阳县| 台江县| 丘北县| 临潭县| 洛川县| 分宜县| 桓仁| 慈利县|