vue router 에서 vuex modules store 참조하기
2021. 7. 14. 19:23ㆍIT개발/Vue.js
반응형
router.js에서 store.js 내 vuex 저장소 모듈을 사용하려면
아래와 같이, store.getters["스토어모듈명/함수명"] 접근하면 됨.
const isLogin = store.getters["userStore/isLogin"];
// router.js
import Vue from "vue";
import Router from "vue-router";
import { store } from "@/js/store/store";
Vue.use(Router);
...
...
router.beforeEach((to, from, next) => {
console.log(store);
const isLogin = store.getters["userStore/isLogin"];
if (to.matched.some((record) => record.meta.requiresAuth)) {
if (!isLogin) {
next({
name: "LoginForm",
query: { redirect: to.fullPath },
});
} else {
next();
}
} else {
next();
}
});
// store.js
import Vue from "vue";
import Vuex from "vuex";
import userStore from "./modules/UserStore";
import companyStore from "./modules/CompanyStore";
Vue.use(Vuex);
export const store = new Vuex.Store({
modules: {
userStore,
companyStore,
},
});
// UserStore.js
const userStore = {
namespaced: true,
state: {
userInfo: AuthService.getUser() || AuthService.newUser(),
token: AuthService.getToken() || "",
},
getters: {
isLogin(state) {
return state.userInfo.userNm !== null;
},
},
참고로
f12번 눌러 console.log(store)를 확인 해보면, 어떤녀석들이 있는지 확인 가능하니 참고하자.
반응형
'IT개발 > Vue.js' 카테고리의 다른 글
[Vuejs] mutations/actions 함수의 파라미터는 제한이 있다! (0) | 2021.07.27 |
---|---|
Vuex 라이프 사이클 (0) | 2021.07.27 |
npm run build 전후 스크립트 추가하기 (0) | 2021.07.15 |
devexpress customs theme 적용하기 (0) | 2021.07.08 |
Vue.js #01. 뷰 시작하며... (0) | 2020.12.02 |