new Vue({})
, SFC에서는 .vue
에 해당)중앙에서 관리하는 모든 상태 정보 (data)
Mutations에 정의된 메서드에 의해 변경
여러 컴포넌트 내부에 있는 특정 State를 중앙에서 관리
state가 변화하면 해당 state를 공유하는 컴포넌트의 DOM은 알아서 렌더링
작동
dispatch()
를 사용하여 Actions 내부의 메서드를 호출dispatch()
메서드에 의해 호출commit()
메서드에 의해 호출Vuex 는 공유된 상태 관리를 처리하는데 유용하지만, 개념에 대한 이해와 시작하는 비용이 크다는 것을 인지해야함
앱이 단순하다면 Vuex 없이 괜찮음
중대형 규모의 SPA 를 구축하는 경우 Vue컴포넌트 외부의 상태를 보다 잘 처리할 수 있는 방법으로써 Vuex 를 선택하는 단계가 옴
import { mapState} from 'vuex'
...mapState([ '쓰고싶은state' ])
import { mapGetters } from 'vuex'
...mapGetters([ '쓰고싶은getters' ])
import { mapActions } from 'vuex'
...mapActions([ '쓰고싶은actions' ])
button @click="이벤트(payload)">
로컬 스토리지란?
쉽게 다룰 수 있는 플러그인 - vuex-persistedstate
설치방법
npm i vuex-persistedstate
store > index.js
import createPersistedState from "vuex-persistedstate";
export default new Vuex.Store({
plugins : [
createPersistedState(),
],
...
설치하면 무엇이 바뀌는가?