vue router.beforeEach()詳細
1311 ワード
outer.beforeEach()は、一般的にページへのアクセス制限に使用されます.たとえばログインしていないと、一部のページにアクセスできません.ログインしてからのみ、一部のページを表示する権限があります.のはっきり言ってルートブロックです.最初のステップでは、ルーティングにアクセスするには権限が必要かどうかを規定します.
ステップ2 vuexを使用してuserIdを1つ全体
ステップ3ではrouterを使用します.beforeEach()
第4歩第3歩この/bルーティングは実はページにログインすることであり、Aページに入る前にインタフェースを要求し、ログインしたことがあるかどうかを取得し、このuserIdをvuexのstateに存在させる必要がある.userIdがない場合、ログイン後、userIdをstateに保存します.そして仕事を終わらせる
@/router/index.js
import A from '@/components/a'
{
path: '/a',
name: 'a',
component: A,
meta : { // obj
requireAuth:true // true A
}
},
ステップ2 vuexを使用してuserIdを1つ全体
@/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
ステップ3ではrouterを使用します.beforeEach()
@/main.js
:【
( ){
( userID){
} {
b
}
} {
}
】
:
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()
}
})
第4歩第3歩この/bルーティングは実はページにログインすることであり、Aページに入る前にインタフェースを要求し、ログインしたことがあるかどうかを取得し、このuserIdをvuexのstateに存在させる必要がある.userIdがない場合、ログイン後、userIdをstateに保存します.そして仕事を終わらせる