vue路由守衛(全局守衛)


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

回調函數中的參數,

to:進入到哪個路由去,

from:從哪個路由離開,

next:函數,決定是否展示你要看到的路由頁面。

  • 如下,判斷to.path當前將要進入的路徑是否為登錄或注冊,如果是就執行next(),展示當前界面。如果不是,就彈出alert,然后移至登錄界面。
  • 這樣就可實現,用戶在未登錄狀態下,展示的一直是登錄界面。
  • router.beforeEach((to,from,next)=>{
      if(to.path == '/login' || to.path == '/register'){
        next();
      }else{
        alert('您還沒有登錄,請先登錄');
        next('/login');
      }
    })

 

全局后置鈎子router.afterEach((to,from)=>{})

  • 只有兩個參數,
  • to:進入到哪個路由去,
  • from:從哪個路由離。
  • 如下,每次切換路由時,都會彈出alert,點擊確定后,展示當前頁面。
  • router.afterEach((to,from)=>{
      alert("after each");
    })

關於next這個方法的描述應該如何理解

1.next()

你乘坐汽車要從A景區到B景區,路過關卡時,守門人攔下你,你量出了next(),守門人一看沒問題,趕緊放行,於是你順利到達了B景區。

2.next(false)

如果你量出了next(false),守門人立馬關住大門,不讓你走,哪都不讓你去,你說想換個交通方式,走路或者坐飛機,都不行,老實待在A景區吧

3.next('/')  

你原本打算從A景區到B景區,但是走到關卡的時候由於某些原因改變了主意,想要去C景區,你對守門員量出了next({path:'/C'}),守門員一看,哦,原來你不去B了,要去C啊,去吧去吧,
然后你順利到達了C景區

4.next(error)  

你在出發之前,給你媽媽說,媽,要是有什么事我立馬通知你,你記得查看消息啊(你注冊了router.onError())走到中途,
出現了意外,你發出next(error),然后你媽就收到了消息,趕緊打電話問你怎么了(執行router.onError()里的回調)

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM