Vue component에서는 원본 소스 역할인 data로 볼 수 있고, state는 mutation을 통해서만 변경이 가능하다.
유일하게 state를 변경할 수 있는 방법이며 메서드와 유사하고, commit을 통해서만 호출 할 수 있으며 함수로 구현된다.
API를 통해 전달받은 데이터를 mutations에서 가공하여 state를 변경한다.
비동기 작업이 가능하고, mutation을 호출하기 위한 commit이 가능하다.
action은 dispatch를 통해 호출할 수 있다.
axios를 통한 api 호출과 그 결과에 대해 return을 하거나 mutation으로 commit하는 용도로 사용된다.
state에 대해 연산을 하고 그 결과를 view에 바인딩 할 수 있다.
state의 변경 여부에 따라 view를 업데이트한다.
1. Vue Component에서 Dispatch([action method name])를 통해 action을 실행
(ex. 버튼클릭 이벤트발생 등등)
2. Action에서는 외부 Api를 호출하는 등 비동기 로직을 처리
3. 그 결과를 이용해 동기 로직인 Mutaions을 호출
--> Commit([mutations method name])를 통해 Mutation을 실행
4. Mutation에서 State(data)를 변경
5. getter를 이용하여 다시 Compoent에 바인딩돼 화면을 갱신
State(data)를 변경할 수 있는 것은 오로지 Mutations
이 안에서 filter, reduce 등 다양한 방법으로 데이터를 가공할 수 있다.
modules에서 각종 목적에 맞는 항목을 분리할 수 있다.
출처 : https://bbosong-develop.tistory.com/3 - bbosong - tiStory
출처 : https://velog.io/@yjyoo/vue.js-Vuex-%EC%A0%95%EB%A6%AC - yjyoo