vue router.beforeEach(),詳解


outer.beforeEach()一般用來做一些進入頁面的限制。

比如沒有登錄,

就不能進入某些頁面,只有登錄了之后才有權限查看某些頁面。。。說白了就是路由攔截。
第一步 規定進入路由需不需要權限

 @/router/index.js import A from '@/components/a' { path: '/a', name: 'a', component: A, meta : { //加一個自定義obj requireAuth:true //這個參數 true 代表需要登錄才能進入A } },

 

第二步 使用vuex整一個userId

 

@/assets/store.js //使用vuex三步走 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) //這個理論來說 const store = new Vuex.Store({ state:{ userId : '' } }) export default store

 

第三步 使用router.beforeEach()

 

 

import store from '@/assets/store'   //把這個userId獲取過來 router.beforeEach((to,from,next)=>{ if(to.meta.requireAuth){ if(store.state.userId){ next() }else{ next({path:'/b'}) } }else{ next() } })

第四步
第三步這個/b路由其實就是登陸頁面,
當進入A頁面之前,需要請求接口,獲取一下是否有登陸過,然后把這個userId存在vuex的state里。
當沒有userId時,則在登陸之后,存一個userId到state里。然后就敲完收工

 

 

全局鈎子作用於所有路由,
里面的參數
<code>to</code>表示即將要進入的路由對象,
<code>from</code>表示即將要離開的路由對象,
<code>next</code>是繼續跳轉或中斷的方法。
我們來看一下打印出的對象



 


免責聲明!

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



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