본문 바로가기

programming study/Vue

Vue.js - mutations & commit

본 내용은 인프런 장기효(캡틴판교)님의 Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex 강의를 토대로 작성하였습니다.

 

1. mutations이란?

  • state의 값을 변경할 수 있는 유일한 방법이자 메서드
  • mutations은 commit()으로 동작
// store.js
state: { num: 10 },
mutations: {
  printNumbers(state) {
    return state.num
  },
  sumNumbers(state, anotherNum) {
    return state.num + anotherNum;
  }
}

// App.vue
this.$store.commit('printNumbers');
this.$store.commit('sumNumbers', 20);

 

2. mutations의 commit() 형식

  • state를 변경하기 위해 mutations를 동작시킬 때 인자(payload)를 전달할 수 있음
// store.js
state: { storeNum: 10 },
mutations: {
  modifyState(state, payload) {
    console.log(payload.str);
    return state.storeNum += payload.num;
  }
}

// App.vue
this.$store.commit('modifyState', {
  str: 'passed from payload',
  num: 20
})

 

3. mutations로 상태를 변경해야 하는 이유

  • 특정 시점에 어떤 컴포넌트가 state를 접근하여 변경한 건지 확인하기 어렵기 때문
  • 따라서, 뷰의 반응성을 거스르지 않게 명시적으로 상태 변화를 수행
    • 반응성, 디버깅, 테스팅 혜택

 

Reference

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

'programming study > Vue' 카테고리의 다른 글

Vue.js - actions  (0) 2021.10.29
Vue.js - Helper  (0) 2021.10.28
Vue.js - Vuex 설치 및 등록, state & getters  (0) 2021.10.26
Vue.js - Vuex, Flux & MVC  (0) 2021.10.23
Vue.js - Modal, Slot, Transition  (0) 2021.10.17