首頁 web前端 js教程 使用vue-route 的 beforeEach 實作導航守衛(路由跳轉前驗證登入)功能

使用vue-route 的 beforeEach 實作導航守衛(路由跳轉前驗證登入)功能

May 26, 2018 pm 04:14 PM
導航

在網站中普遍會遇到這樣的需求,在路由跳轉前做一些驗證,例如登入驗證(未登入登入頁)。下面我為大家帶來了使用vue-route 的beforeEach 實現導航守衛(路由跳轉前驗證登錄)功能,感興趣的朋友一起看看吧

路由跳轉前做一些驗證,比如登錄驗證(未登入去登入頁),是網站中的普遍需求。對此,vue-route 提供的 beforeRouteUpdate 可以方便地實現導航守衛(navigation-guards)。

導航守衛(navigation-guards)這個名字,聽起來怪怪的,但既然官方文件是這樣翻譯的,就姑且這麼叫吧。

先來摘抄一段文件中beforeRouteUpdate 的用法:

你可以使用router.beforeEach 註冊一個全域前守衛:

const router = new VueRouter({ ... }) 
router.beforeEach((to, from, next) => { 
 // ... 
})
登入後複製

#當一個導航觸發時,全域前置守衛會依照建立順序呼叫。守衛是非同步解析執行,此時導航在所有守衛 resolve 完成之前一直處於 等待中。

每個守衛方法接收三個參數:

to: Route: 即將要進入的目標路由物件

from: Route: 目前導航正要離開的路由

next: Function: 一定要呼叫該方法來resolve 這個鉤子。執行效果依賴 next 方法的呼叫參數。

next(): 進行管道中的下一個鉤子。如果全部鉤子執行完了,則導航的狀態就是 confirmed (確認的)。

next(false): 中斷目前的導航。如果瀏覽器的 URL 改變了(可能是使用者手動或瀏覽器後退按鈕),那麼 URL 位址會重設到 from 路由對應的位址。

next('/') 或 next({ path: '/' }): 跳到一個不同的位址。目前的導航被中斷,然後進行一個新的導航。

next(error): (2.4.0 ) 如果傳入 next 的參數是一個 Error 實例,則導航會被終止且該錯誤會傳遞給 router.onError() 註冊過的回呼。

確保要呼叫 next 方法,否則鉤子就不會被 resolved。

下面寫一個例子,上一篇部落格中我們的帳號頁,包含課程和訂單,都需要在跳轉前判斷是否已登入;已登入的情況再去登入頁,跳到首頁:

const vueRouter = new Router({ 
  routes: [ 
    //...... 
    { 
     path: '/account', 
     name: 'account', 
     component: Account, 
     children: [ 
      {name: 'course', path: 'course', component: CourseList}, 
      {name: 'order', path: 'order', component: OrderList} 
     ] 
    } 
  ] 
}); 
vueRouter.beforeEach(function (to, from, next) { 
  const nextRoute = [ 'account', 'order', 'course']; 
  const auth = store.state.auth; 
  //跳转至上述3个页面 
  if (nextRoute.indexOf(to.name) >= 0) { 
    //未登录 
    if (!store.state.auth.IsLogin) { 
      vueRouter.push({name: 'login'}) 
    } 
  } 
  //已登录的情况再去登录页,跳转至首页 
  if (to.name === 'login') { 
    if (auth.IsLogin) { 
      vueRouter.push({name: 'home'}); 
    } 
  } 
  next(); 
});
登入後複製

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

探討Ajax中有關readyState和status的問題

全面解析$.Ajax()方法參數(圖文教學)

基於Ajax技術實作檔案上傳帶進度條

以上是使用vue-route 的 beforeEach 實作導航守衛(路由跳轉前驗證登入)功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

導航地圖上橫著的8字是什麼 導航地圖上橫著的8字是什麼 Jun 27, 2023 am 11:43 AM

導航地圖上橫著的8字是霾,中度是黃色8預警訊號,重度是橘色8預警訊號。

百度地圖 App 最新版本 18.8.0 發布,首次引入紅綠燈雷達功能,並新增即時停車推薦功能 百度地圖 App 最新版本 18.8.0 發布,首次引入紅綠燈雷達功能,並新增即時停車推薦功能 Aug 06, 2023 pm 06:05 PM

百度地圖App安卓版/iOS版都已發布18.8.0版本,首次引入紅綠燈雷達功能,業界領先據官方介紹,開啟紅綠燈雷達後,支援開車自動探測紅綠燈,不用輸入目的地,北斗高精可以即時定位,全國100萬+紅綠燈自動觸發綠波提醒。除此之外,新功能還提供全程靜音導航,使圖區更簡潔,關鍵訊息一目了然,且無語音播報,使駕駛員更加專注駕駛百度地圖於2020年10月上線紅綠燈倒數功能,支援即時讀秒預判,導航會在接近紅綠燈路口時,自動展示倒數剩餘秒數,讓使用者隨時掌握前方路況。截至2022年12月31日,紅綠燈倒數

足球導航語音包在哪個導航軟體 足球導航語音包在哪個導航軟體 Nov 09, 2022 pm 04:33 PM

足球導航語音包在「高德導航」軟體中,是高德地圖車機版導航語音包的其中一種,內容為黃健翔足球解說版本的導航語音。設定方式:1、開啟高德地圖軟體;2、點擊進入“更多工具”-“導航語音”選項;3、找到“黃健翔熱血語音”,點擊“下載”;4、在彈出的頁面,點擊“使用語音」即可。

高德地圖推出升級版駕駛 ETA 服務:即時解析當前路況,預估抵達時間更精準 高德地圖推出升級版駕駛 ETA 服務:即時解析當前路況,預估抵達時間更精準 Apr 30, 2024 am 08:37 AM

本站4月29日消息,高德地圖官宣推出升級版的駕車ETA(本站註:ETA即預估到達時間,指的是用戶在當前時刻出發按照給定路線前往目的地預計需要的時長)服務,該服務旨在幫助用戶的路線規劃時長和路況預估更為精準,輔助用戶進行出行決策。該地圖應用程式是最新升級的高德地圖App,引入了“超大規模圖卷積神經網路模型”,該模型可以更好地捕捉和學習交通流動規律,支持城市道路網絡、高速公路系統,能以高精準度刻畫交通狀況的時空動態變化。在此外,全新版本的地圖也進一步融合了iTransformer時序預測模型,支援即時解析

如何透過Vue實現圖片的瀏覽和縮圖導航? 如何透過Vue實現圖片的瀏覽和縮圖導航? Aug 18, 2023 pm 02:51 PM

如何透過Vue實現圖片的瀏覽和縮圖導航?隨著Web應用程式的發展,圖片在我們的日常生活中扮演著越來越重要的角色。在許多情況下,我們需要實作圖片的瀏覽和縮圖導航功能。這篇文章將介紹如何利用Vue框架實現此功能,並提供程式碼範例。在Vue中,我們可以使用Vue插件來實現圖片的瀏覽和縮圖導航功能。一個流行的插件是vue-gallery,它提供了簡單易用的接口

uniapp中如何實現頁面跳躍與導航 uniapp中如何實現頁面跳躍與導航 Oct 20, 2023 pm 02:07 PM

uniapp中如何實現頁面跳轉和導航uniapp是一款支援一次編碼多端發布的前端框架,它基於Vue.js,開發者可以使用uniapp快速開發行動端應用程式。在uniapp中,實現頁面跳躍和導航是非常常見的需求。本文將介紹uniapp中如何實現頁面跳轉和導航,並提供具體的程式碼範例。一、頁面跳轉使用uniapp提供的方法進行頁面跳躍uniapp提供了一組方法用於實現

百度地圖導航畫面常亮怎麼設置 百度地圖導航畫面常亮怎麼設置 Apr 01, 2024 pm 06:22 PM

百度地圖是許多小夥伴們外出都會使用的,可以提供最快捷的路線,而且還可以查看各種不同的出行方式,想要來設定導航螢幕常量的話,就來PHP中文網看小編帶來的方法吧。百度地圖設定導航螢幕常亮方法分享1.先點選開啟手機中的百度地圖APP進入後,在頁面的左上方位置點選【個人頭像】開啟。 2.來到個人中心頁面後,在其中找到【設定】功能,並在上面點選進入。 3.接下來在設定頁面點選【通用設定】這一項進入。 4.在通用設定頁面裡有一個【螢幕常亮】功能,在它的後面顯示有一個開關按鈕,點擊圓形的滑桿把按鈕設定為開啟狀態

使用PHP和XML實現網頁的導航和選單 使用PHP和XML實現網頁的導航和選單 Aug 07, 2023 am 11:34 AM

使用PHP和XML實現網頁的導航和選單導航和選單是網頁中常見的元素,它們可以使用戶快速找到所需的資訊或功能。在網頁開發中,PHP和XML經常被用來處理和儲存導航和選單的資料。本文將介紹如何使用PHP和XML實現網頁導航和選單,並提供相關的程式碼範例。一、建立XML選單資料檔首先,我們需要建立一個XML檔案來儲存我們的選單資料。以下是一個範例的XML文件,它

See all articles