role 체크는 초기 한 번만 하면 됩니다. 제가 제주감자님 소스로 비슷한 환경으로 실제 프로젝트 투입 중인데, role 정보를 초기에 로그인 정보와 같이 store 에 저장 후 라우터에서는 로그인 체크만 합니다.
권한 체크는 매 접근 시 굳이 할 필요가 없는 게, router 에서 처음부터 role 별로 걸러내는 소스를 볼 수 있습니다. 즉, 이후에는 로그인만 체크하고 로그인만 유효하면 필터링된 라우팅 정보로 접근한다는 거죠.
저는 이를 활용해서 서버단에서 걸러내는 로직을 구현했습니다. 물론 전체 라우팅 정보는 vue에 어쩔 수 없이 존재해야 합니다. 전체에서 필터링을 거는 식이니까요. 어자피 라우팅 데이터가 import 구문 때문에 Webpack 트랜스코딩 데이터이다 보니 분석도 어렵고, 악의적 사용자가 어렵게 억지로 접근한다 해도 API에서 로그인 체크만 해도 안전하게 앱을 구성할 수 있습니다.