vuerouter導航守衛(router.beforeEach())的使用詳解

導航守衛

目前成都創新互聯公司已為成百上千的企業提供了網站建設、域名、虛擬主機、網站改版維護、企業網站設計、鄯善網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。

        導航守衛主要用來通過跳轉或取消的方式守衛導航。有多種機會植入路由導航過程中:全局的, 單個路由獨享的, 或者組件級的。(記住參數或查詢的改變并不會觸發進入/離開的導航守衛。你可以通過觀察$route對象來應對這些變化,或使用beforeRouteUpdate的組件內守衛。)

好久沒寫一些東西了,總是感覺有啥缺少的。~~~~恰好碰到最近在寫一個移動端項目,遇到了如何使同一個鏈接在不同條件下跳轉到不同路由組件問題,譬如大家經常看到手機中沒登錄跳轉登錄頁,登陸后跳轉個人信息頁等。廢話不多說了,直接上圖:

vue router導航守衛(router.beforeEach())的使用詳解

這是沒登錄狀態,點擊下面mine按鈕跳轉至登錄頁

vue router導航守衛(router.beforeEach())的使用詳解

這個是我登錄了自己的賬號后,再次點擊mine按鈕會跳轉至個人信息頁面

好了,看到了這個效果今天咱們來實現下

實現方法

我們點擊下面mine按鈕其實是路由跳轉,所以我們需要在跳轉路由之前做一個判斷,根據不同的條件讓這個鏈接跳轉到不同路由。這時候我們vue-router中的導航守衛就閃亮登場了~~~

先看官方文檔: https://router.vuejs.org/zh-cn/advanced/navigation-guards.html

vue-router 提供的導航守衛主要用來通過跳轉或取消的方式守衛導航。有多種機會植入路由導航過程中:全局的, 單個路由獨享的, 或者組件級的。

官方文檔中說了很清楚,我們可以使用 router.beforeEach 注冊一個全局前置守衛:

在router文件夾下index.js中添加以下代碼

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

vue router導航守衛(router.beforeEach())的使用詳解

這里對router.beforeEach方法的每個參數做簡要的解釋。

“to”: 即將要進入的目標 路由對象;(這個對象中包含name,params,meta等屬性)

"from": 當前導航正要離開的路由對象;(這個對象中包含name,params,meta等屬性)

“next”: Function: 確保要調用 next 方法,否則鉤子就不會被 resolved。這個當中還可以傳一些參數,具體可以看官方文檔。

我們在代碼中做了一個判斷 if (to.name === 'Mine') ,也就是說當我們要跳轉的路由對象是Mine時候,才會進入導航守衛中判斷條件,當我們點擊其他鏈接跳轉其他頁正常,因為我們只有mine按鈕鏈接對應的情況有兩種。

// 登陸/注冊就去用戶詳情頁
 if (localStorage.getItem('userID')) {
  router.replace('/myinfo')
 }

這段代碼就是判斷當用戶點擊了mine,我們需要判斷用戶是否是登錄還是未登錄了。因為之前用戶登錄的時候我將用戶的userID保存到了localStorage中,所以只需要判斷localStorage中是否有用戶的userID,來判斷用戶是否登錄。這里情況兩個,未登錄去登錄頁,登錄去個人信息頁

好了,通過簡單的配置使用,我們就可以愉快的根據不同的情況來實現路由跳轉不同組件了~

哈哈,很簡單吧,歡迎大家一起交流學習前端知識。我在GitHub上等你一起呦
~

說明

文章因為是在工作之余寫的,可能時間匆忙,有些錯別字或者語法等低級錯誤,歡迎留言指出,謝謝。。

同時在GitHub上也可以一起交流交流~~~

GitHub 走你

總結

以上所述是小編給大家介紹的vue router導航守衛(router.beforeEach())的使用詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創新互聯網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

網站題目:vuerouter導航守衛(router.beforeEach())的使用詳解
URL標題:http://m.kartarina.com/article48/pipjhp.html

成都網站建設公司_創新互聯,為您提供小程序開發企業建站定制網站定制開發網頁設計公司電子商務

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 无码粉嫩虎白一线天在线观看| 人妻无码aⅴ不卡中文字幕| 中文字幕无码日韩专区免费| 人妻系列AV无码专区| 日韩精品无码Av一区二区| 亚洲av片不卡无码久久| 国产在线观看无码免费视频| 久久亚洲AV无码精品色午夜麻| 无码人妻一区二区三区免费| 久久精品亚洲中文字幕无码麻豆| 亚洲AV无码成人精品区天堂 | 亚洲AV无码专区在线观看成人 | 黑人无码精品又粗又大又长 | 久久久久久av无码免费看大片| 四虎成人精品无码| 久久久久亚洲AV成人无码网站| 色综合久久久无码中文字幕| 国产精品久久无码一区二区三区网 | 无码人妻丰满熟妇区五十路| 国产精品无码无需播放器| 亚洲国产精品成人AV无码久久综合影院 | 亚洲欧洲自拍拍偷午夜色无码| 日韩av无码国产精品| 无码中文字幕日韩专区视频| 亚洲精品无码成人片在线观看| 无码中文人妻在线一区| 无码八A片人妻少妇久久| 亚洲av无码专区在线电影| 人妻丰满熟妇av无码区不卡| 中文字幕丰满伦子无码| 国产免费久久久久久无码| 亚洲国产精品无码久久青草| 在线精品免费视频无码的| 久久美利坚合众国AV无码| 少妇久久久久久人妻无码| 亚洲色无码专区一区| 亚洲高清无码在线观看| 国产精品爽爽V在线观看无码| 成人午夜精品无码区久久| 人妻无码久久精品| 久久久人妻精品无码一区|