Action handlers receive a context object which exposes the same set of methods/properties on the store instance, so you can callcontext.committo commit a mutation, or access the state and getters viacontext.stateandcontext.getters.
이렇게 되어있다.
Action 은 context 객체를 받아야하는거다.
그 context 객체 안에는 commit, dispatch, getters 등이 들어있는거다!
import router from "@/router";
import axios from "axios";
const loginModule = {
namespaced: true,
actions: {
async signUp(context, params){
try{
const res = await axios.post('/api/signUp/action',params);
if(res.data.isSuccess == true){
alert('회원가입이 완료되었습니다.');
}else{
if(res.data.errorMsg != null && res.data.errorMsg == 'emailDup'){
alert('이미 등록된 이메일 주소입니다. 다시 입력해주세요.');
}else{
alert('화원가입을 진행중 오류가 발생했습니다. 관리자에게 문의해주세요.');
}
}
}catch{
alert('화원가입을 진행중 오류가 발생했습니다. 관리자에게 문의해주세요.');
}
},
},
}
export default loginModule;
이렇게 했는데.... 말이 안되는 것 같다. 왜냐면, 일단 vue 를 쓰는건 결국엔 frontend와 backend를 완전히 구분지어서 작업하는게 가능하게 한것인데. 결국엔 backend 개발자가 front를 건드리는 느낌..... 아니면 axios는 결국에는 backend의 작업이니 이게 맞는건가.... 잘모르겟다.
좀더 깔끔하게 사용하기 위해서, loginModule.js 에서는 확실하게 Vuex에 관한 것만 넣어놓고 싶기때문에, alert처럼 에러나 action에 대한 각각의 처리는 vue에서 하는게 맞는것같다 ( 이미 만들어져 있는 프로젝트를 참고해보면 ) -> 물어보고 시도해보겟다. 왜냐면, backend 에서 error로 넘겨줘야하는데... 잘모르겟다.