1seul357

Vuex 본문

TIL

Vuex

1seul 2022. 7. 25. 13:13

vuex

  • 상태 관리 패턴 + 라이브러리
  • 상태(state)를 전역 저장소(store)로 관리할 수 있도록 지원하는 라이브러리
  • 애플리케이션의 모든 컴포넌트에 대한 중앙 집중식 저장소
  • 동일한 state를 공유하는 다른 컴포넌트들도 동기화

 

State

  • 중앙에서 관리하는 모든 상태 정보(data)
  • 각 애플리케이션마다 하나의 저장소만 갖게 됨
  • 각 컴포넌트는 Vuex Store에서 state 정보를 가져와서 사용

 

Mutations

  • state를 변경하는 유일한 방법
  • handle는 동기적임(비동기적 로직은 state가 변화하는 시점이 의도한 것과 달라질 수 있고, 콜백이 실제로 호출될 시기를 알 수 없음)
  • 첫번째 인자로 state를 받고, Actions에서 commit( ) 메서드에 의해 호출

 

Actions

  • 비동기 작업 포함
  • Context 객체 인자 받음, 컴포넌트에서 dispatch( ) 메서드에 의해 호출
  • Actions를 통해 state를 조작할 수 있지만 하지 않음 -> 명확한 역할 분담을 통해 규모가 커졌을 때, state를 올바르게 관리하기 위해서

 

Getters

  • state를 활용하여 계산 수행, 실제 상태를 변경하지는 않음
  • getters의 결과는 state 종속성에 따라 캐시되고, 종속성이 변경된 경우에만 재계산

 

Compontent Binding Helper

  • 배열 조작을 편하게 할 수 있도록 하는 것
  • mapState : Computed와 State를 매핑. state를 객체 전개 연산자로 계산하여 추가
  • mapGetters : Computed와 State를 매핑. getters를 객체 전개 연산자로 계산하여 추가
  • mapActions : actions를 객체 전개 연산자로 계산하여 추가
  • mapMutations

 

LocalStorage

  • Vuex state : Vuex state를 자동으로 브라우저의 LocalStorage에 저장해주는 라이브러리
  • 페이지가 새로고침 되어도 Vuex state를 유지시킴

 

actions 없이 mutations으로만 state를 변경?

변경할 수 있다. 하지만 저장소의 각 컨셉은 역할이 존재하도록 설계되어 있다.

'TIL' 카테고리의 다른 글

Storybook  (1) 2024.07.23
TypeScript  (0) 2022.07.27
Vue.js_02  (0) 2022.07.25
Vue.js_01  (0) 2022.07.25
JavaScript_04  (0) 2022.07.23