vuex란?
vuex는 vue에서 활용할 수 있는 상태관리라이브러리 입니다.
애플리케이션의 모든 컴포넌트에 대한 중앙 집중식 저장소 역할을 하며 예측 가능한 방식으로 상태를 변경할 수 있습니다.
vuex를 왜 사용하는가?
- 대용량의 SPA에서의 컴포넌트끼리 공통적인 데이터를 사용함에 있어 데이터 및 상태 관리를 용이하게 한다.
? 쇼핑몰 서비스를 예를 들자. 로그인을 한 고객의 정보를 다양한 컴포넌트에서 사용할 확률이 높다. (이름, 등급 등) 따라서 이러한 데이터를 vuex에 저장해 두고 다양한 컴포넌트에서 꺼내쓴다면?
- 애플리케이션의 상태에 대한 예측이 쉬워진다.
? 데이터를 변경하고 저장하는 일련의 공통적인 과정들을 vuex store내에서 관리하게 된다면 일괄적이고 지역적으로 관리할 수 있게 된다.
그렇다면 단점은?
- 새로고침시 vuex store내에 저장된 데이터가 사라지게된다.
- 공통의 상태를 공유하는 여러 컴포넌트가 있는 경우 단순함이 빠르게 저하된다. 즉 프로젝트가 복잡해진다.
즉 프로젝트가 크지않다면 굳이 vuex를 사용하지 않아도 된다. 컴포넌트별 상태를 주고 받는 이벤트는 사실 많기 때문이다!
( vuex공식 사이트에서도 그렇게 말하고 있다. )
화자도 vuex를 사용하면서 새로고침시 데이터가 사라지는 것을 방지하기 위해 localStorage등을 함께 사용하고 있다.
Vuex의 데이터 흐름도
stage, mutations, actions, getter 4가지 형태로 관리하게 된다
State
- Vue Components에서의 data에 해당하는 것으로 원본 데이터를 의미한다.
- state는 mutation을 통해서만 변경이 가능하다.
Mutations
- State를 변경하려면 반드시 호출해야하는 것으로 method와 비슷하다.
- 단 Mutations는 commit을 통해서만 호출 할 수 있으며 함수로 구현된다.
Actions
- 비동기 작업이 가능합니다.
- mutation을 호출하기 위한 commit이 가능합니다.
- action은 dispatch를 통해 호출할 수 있습니다.
'FE > Vue' 카테고리의 다른 글
[vue.js] slot에 대해 알아보자 (0) | 2021.08.20 |
---|