인프런 커뮤니티 질문&답변

DAEUK LEE님의 프로필 이미지
DAEUK LEE

작성한 질문수

Vue.js 끝장내기 - 실무에 필요한 모든 것

로그인 아이디 헤더에 표시하기

actions / mutations 에 대하여

작성

·

372

1

안녕하세요. 

현업에서 vue를 사용하고 있습니다.

부족한것을 채우려 처음부터 정주행 하고 있습니다.

덕분에 몰랐던것과 여러 팁 얻어가고 있습니다. 감사합니다.

 

질문이 있습니다.

예를들어 지금까지는 아래와같이

const userStore = {
  namespaced: true,
  state: {
    username: '',
  },
  getters: {
    GET_USER_NAME: state => state.username,
  },
  mutations: {
    SET_USER_NAME: (state, payload) => {
      state.username = payload.username;
    },
  },
  actions: {
    SET_USER_NAME({ commit }, payload) {
      commit('SET_USER_NAME', payload);
    },
  },
};

export default userStore;

 

 

this.$store.commit을 사용해 mutations를 직접 건드리는것이 아니라

this.$store.dispatch를 사용하여 actions를 건드려서 mutations 커밋으로 state의 상태 를 변경해왔습니다.

 

- 직접 mutations을 건드리는것의 이점이 있는가? 

- 대부분 actions를 사용해 mutations 커밋하는것을 권장하던데 이유가 있는가?

에 대해 알고 싶습니다.

 

단지 비동기 비즈니스 로직을 actions에서 수행할 수 있기에

권장하는것인가 하는 생각도 듭니다.

그렇다면

- 비동기 로직이 없는  string 저장등을 위한 로직은 actions를 거치는것보다 mutations를 바로 건드리는게 더 효율적일까요?

 

답변 잘부탁드립니다

 

 

답변 1

0

안녕하세요 대욱님, 뷰엑스를 사용할 때 비동기 처리는 액션을 통해서 진행해야 합니다. 반대로 비동기 처리가 필요 없는 경우 뮤테이션만 사용해도 무방합니다. 이렇게 해야 하는 이유는 뷰엑스가 그렇게 설계되어 있어서 그렇습니다 :)

DAEUK LEE님의 프로필 이미지
DAEUK LEE

작성한 질문수

질문하기