# vue router Router ```flow enter=>start: Router.js to404=>operation: 404 toNext1=>operation: next() toNext2=>operation: next() toNext3=>operation: next() toReset=>operation: 重設登入資料 toNoPermission=>operation: next('/no-perm') toLogin=>operation: next('/login') toLogin2=>operation: next('/login') beforeEach=>operation: route.beforeEach checkRoute=>condition: 是否存在路由 hasToken=>condition: 是否存在Token isLogin=>condition: 是否isLogin isWhileList=>condition: 是否在白名單內 getUserInfo=>condition: 取得登入資訊 needPermission=>condition: 是否需要驗證權限 checkPermission=>condition: 是否需要通過驗證 enter->checkRoute checkRoute(yes)->beforeEach checkRoute(no)->to404 beforeEach->hasToken hasToken(yes)->isLogin hasToken(no)->isWhileList isLogin(yes)->needPermission needPermission(yes)->checkPermission needPermission(no)->toNext2 checkPermission(yes)->toNext3 checkPermission(no)->toNoPermission isLogin(no)->getUserInfo getUserInfo(yes)->needPermission getUserInfo(no)->toReset isWhileList(yes)->toNext1 isWhileList(no)->toLogin toReset->toLogin ```