반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- scss
- vuex
- Vue transition
- 자바스크립트
- sass
- 자료구조
- input
- Wecode
- ES6
- mapGetters
- v-html
- MySQL
- 리액트
- storybook
- Vue
- event
- CSS
- JavaScript
- jsx
- HOC
- webpack
- express
- react
- 댓글달기
- nodejs
- TypeScript
- State
- Vue.js
- App.vue
- 쉬운설명
Archives
- Today
- Total
익명의 개발노트
[vue.js] Navigation Guard 본문
반응형
1. 네비게이션 가드
정의 : 뷰 라우터로 특정 URL에 접근할 때 해당 URL의 접근을 막는 방법을 말한다.
어디다 사용? 고객 인증정보 없으면, 페이지 접근 못하게 하는 식으로 사용
2. 종류
1) 전역가드 : beforeEach()
전역가드는 라우터의 인스턴스를 참조하는 객체로 설정할 수 있으며, 모든 네이게이션의 생성된 순서에 따라 호출한다.
const router = new VueRouter({
})
router.beforeEach((to, from, next) => {
})
router.beforeEach를 호출하면 모든 라우팅이 대기상태가 된다. 해당 url 로 라우팅하기 위해서는 next()를 호출해줘야한다.
next 호출전까지는 대기 상태에서 머물기 때문에 화면전환이 이루어지지 않음.
참고자료 : https://joshua1988.github.io/web-development/vuejs/vue-router-navigation-guards/
2) 라우터 가드 : beforeEnter()
라우터 가드는 전체라우팅이 아닌 특정 라우팅에 대해 가드를 설정한다.
//router.js
const requireAuth = () => (to, from, next) => {
if (sessionStorage.getItem(process.env.VUE_APP_ACCESS_TOKEN)) {
return next();
}
next('/');
};
export default new Router({
mode: 'hash',
base: process.env.BASE_URL,
routes: [
{
path: '/dashboard',
component: () => import('@/views/basePages/Index'),
beforeEnter: requireAuth(),
},
]
})
3) 컴포넌트 가드 : beforeRouteEnter(), beforeRouteUpdate(), beforeRouteLeave()
const Login = {
template: '<p>Login Component</p>',
beforeRouteEnter (to, from, next) {
// Login 컴포넌트가 화면에 표시되기 전에 수행될 로직
// Login 컴포넌트는 아직 생성되지 않은 시점
},
beforeRouteUpdate (to, from, next) {
// 화면에 표시된 컴포넌트가 변경될 때 수행될 로직
// `this`로 Login 컴포넌트를 접근할 수 있음
},
beforeRouteLeave (to, from, next) {
// Login 컴포넌트를 화면에 표시한 url 값이 변경되기 직전의 로직
// `this`로 Login 컴포넌트를 접근할 수 있음
}
}
참고자료 : https://beomy.tistory.com/75
반응형
'코딩일기 > TIL' 카테고리의 다른 글
[Restful api] Delete에서 parameter 보내는법 (0) | 2019.12.02 |
---|---|
[vue.js] Vuex (0) | 2019.11.17 |
[Sequelize] CRUD, 원하는 컬럼만 출력, 컬럼 합치기 (0) | 2019.11.14 |
[vue.js] 업로드 된 이미지 파일 미리보기 기능구현 (0) | 2019.11.14 |
[vue.js-express] 저장된 이미지 불러오기 및 이미지 URL만들기 (2) | 2019.11.14 |
Comments