router.beforeEach()一般用來做一些進入頁面的限制。比如沒有登錄,就不能進入某些頁面,只有登錄了之后才有權限查看某些頁面。。。說白了就是路由攔截。
1、我們可以在路由中做以下配置,表示當前路由下的頁面需要登錄權限
meta:{requireAuth:true//true為這個頁面需要登錄權限 }
2、在main.js中寫上路由攔截
router.beforeEach((to,from,next)=>{
//從cookie中取值並給vux中的token賦值 store.commit('setToken',Cookie.get('token'))
//如果vux有值就講登錄狀態改成1 if(store.state.token){ store.commit('changIsSignIn',1) }
//判斷是否為true,如果為true就是要登錄,去判斷token是否存在。存在就執行,不存在就跳轉登錄頁面 if(to.meta.requireAuth){ if(store.state.token){ next() }else{ next({path:'/login'}) } }else{ next() } })