組件內的導航守衛


beforeRouteEnter 是組件內的路由導航守衛,在確認渲染該組件的對應路由前調用。該守衛不能訪問 this,但我們通過傳一個回調給 next,就可以使用上面的 vm 來訪問組件實例。守衛的參數說明如下:

  • to:即將要進入的目標路由;
  • from:當前導航正要離開的路由,from.name 是路由的名稱,對應路由配置中的 name
  • next:一個用來 resolve 當前鈎子的方法,需要調用該方法來確認或者中斷導航;

參數 to 和 from 都是 路由對象 (route object),表示當前激活的路由的狀態信息,其常用的屬性有:

name:路由的名稱,如 'Register'
path:路由的路徑,如 '/auth/register'
params:路由參數對象,如 { id: "1" }
query:URL 查詢參數對象,如 { page: "1" }
meta:元信息對象,如 { auth: true }

 1 // 組件內的路由導航守衛
 2 beforeRouteEnter(to, from, next) {
 3   // 路由的名稱,對應路由配置中的 name
 4   const fromName = from.name
 5 
 6   // 確認導航
 7   next(vm => {
 8     // 通過 vm 參數訪問組件實例,已登錄時,評估路由名稱
 9     if (vm.$store.state.auth) {
10       switch (fromName) {
11         // 如果從注冊頁面跳轉過來
12         case 'Register':
13           // 顯示注冊成功
14           vm.showMsg('注冊成功')
15           break
16       }
17     }
18   })
19 }

 


免責聲明!

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



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