일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 2021 정보처리기사 실기
- vuex 새로고침
- vue.js 로그인
- router push
- router 네비게이션
- 2021 정처기
- Props
- defaultProps
- router go
- 2021 정처기 실기
- 2021 정보처리기사
- 함수형 컴포넌트
- 백준 1110 시간 초과
- React
- vuex
- 클래스형 컴포넌트
- 정보처리기사
- propsTypes
- 중첩 라우트
- State
- vue 로그인
- Vue.js 입문
- 컴포넌트
- vue.js
- router replace
- React 시작하기
- 정처기
- Vue.js 시작하기
- 라이프사이클
- vue 히스토리 모드
Archives
- Today
- Total
개발 일기
[Vue.js] - 새로고침 후에도 Vuex 상태 유지하기 (vuex-persistedstate 사용) 본문
2021.03.26 - [Vue.js] - [Vue.js] 로그인 기능 구현하기
위에 글과 이어진다. 추가로 새로고침을 하고 Vuex 상태가 초기화 되는 것을 막고싶은 사람들은 모두 참고하면 된다.
Vuex 문제점
새로고침을 하면 Vuex의 store state가 모두 초기화가 된다. 이는 Vuex는 Vue의 플러그인이기 때문이다. 새로고침을 하면 Vue 인스턴스가 소멸했다가 다시 생성되는 Vue의 라이프사이클을 생각하면 쉽게 이해될 문제이다.
vuex-persistedstate 란?
Vuex store의 state에 저장된 값을 웹 브라우저의 localStorage에 저장 및 업데이트를 해준다. 이는 화면이 새로 로딩을 하게 되어도 없어지지 않기 때문에 로딩시 localStorage에 있는 값을 state에 다시 동기화를 시켜준다.
설치
npm install --save vuex-persistedstate
src/store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate';
Vue.use(Vuex)
import animalStore from '@/store/modules/animalStore.js'
import fruitStore from '@/store/modules/fruitStore.js'
import userStore from '@/store/modules/userStore.js'
const store = new Vuex.Store({
modules: {
animalStore: animalStore,
fruitStore: fruitStore,
userStore: userStore,
},
//vuex plugin 명시
plugins: [createPersistedState({
paths: ["userStore"]
})]
})
export default store
vuex-persistedstate의 경로를 등록하여 plugins에 명시시켜주면 사용할 수 있다.
모든 Vuex store의 값을 localStorage에 저장하게 되면 성능이 떨어질 가능성이 크기에 모듈화를 시켜서 저장할 store만 path에 등록하는 것이 좋다. 모듈화를 하면 시각적 뿐 아니라 여러가지로 좋은 것을 알 수 있다.
'Vue.js' 카테고리의 다른 글
[Vue.js] Vue router 시작하기 (0) | 2021.05.18 |
---|---|
[Vue.js] 로그인 기능 구현하기 (2) | 2021.03.26 |
[Vue.js] vuex store 모듈화하기 (0) | 2021.01.25 |
[Vue.js] 다국어 처리 (vue-i18n 사용) (0) | 2021.01.21 |
[Vue.js 시작하기] - vuex로 중앙에서 상태 관리 하기 (0) | 2021.01.19 |
Comments