[Vue] Vue Advanced

Jinga·2023년 5월 8일
0

Vue

목록 보기
6/13
post-thumbnail

LocalStorage

  • 웹 브라우저에서 제공하는 key-value 형태의 데이터 저장소이다.
  • 데이터를 저장하면 해당 웹 사이트를 나중에 다시 방문하더라도 이전에 저장한 데이터를 불러와 사용할 수 있다.
  • 브라우저가 종료되거나 사용자가 데이터를 삭제하기 전까지 계속 보존된다.
  • Vuex 실습
    • index.js 작성
    • LocalStorage_mutations LocalStorage_actions
    • App.vue 작성
    • LocalStorage_App

plugins

  • Vuex Store에 추가적인 기능을 제공하는 확장 기능이다.
  • 일반적으로 state의 변화를 감지해, 어플리케이션의 성능을 최적화하는 목적을 가진다.
  • Vue.js 애플리케이션의 Vuex Store의 인스턴스와 함께 사용되며, Store의 내부 상태를 조작하거나 Store의 액션을 모니터링하고 반응하는 데 사용된다.
  • vuex-persistedstate
    • Vuex store의 상태를 브라우저 local storage에 저장해 주는 plugin이다.
    • 페이지를 새로 고침하거나 브라우저를 종료했다가 다시 열었을 때, 이전 상태를 유지할 수 있도록 해준다.
    • 적용하기

      • 터미널 설치 npm i vuex-persistedstate
      • index.js 최상단에 import createPersistedState from 'vuex-persistedstate'
      • Vuex.store에 plugins: [ createPersistedState ],
      • 브라우저를 종료 후, 다시 서버를 열었을 때도 vuex의 상태가 유지됨을 확인
      • vuex-persistedstate 작성 vuex-persistedstate 결과

Vuex Binding Helper

  • Vuex store의 state, mutations, actions 등을 간단하게 사용할 수 있도록 만들어진 헬퍼 함수이다.
  • mapState, mapActions와 같은 형식으로 사용되며, import를 통해 받야 와야 한다.
  • mapState

    • Vuex 스토어(store)에서 가져온 state 값을 컴포넌트의 computed 속성(computed property)으로 매핑(mapping)할 수 있도록 도와주는 함수이다.
    • Vuex 스토어의 state 값을 컴포넌트의 computed 속성으로 가져오는 것을 간단하게 해주며, 컴포넌트에서 스토어의 값을 조작하지 않고 읽기만 하는 경우에 주로 사용된다.
    • 코드 작성

      1. App.vue 작성
      2. mapState 1 mapState 2 mapState 결과

    mapActions

    • actions를 component에서 더 간단하게 사용할 수 있도록 도와준다.
    • actions함수를 직접 호출하는 대신, 컴포넌트 메서드에서 액션을 호출 할 수 있다.
    • component에서 this.$store.dispatch()를 호출하는 대신, 액션 메서드를 직접 호출하여 사용할 수 있다.
    • 코드 작성

      1. App.vue 배열로
      2. mapActions 배열1 mapActions 배열2
      3. App.vue 객체로
      4. mapActions 객체

    mapGetters

    • mapState, mapActions와 동일한 방식으로 작성하고 작동한다.
    • mapGetters

modules

  • Vuex store를 여러 파일로 나눠서 관리 할 수 있게 해주는 기능이다.
  • Vuex store와 동일한 구성을 가진 별도의 객체를 정의하여 modules 옵션에 작성한 객체를 추가하여 사용한다.
  • 코드 작성

    1. store폴더에 modules폴더 생성
    2. 별도의 js 파일에 객체 정의
    3. module1
    4. 정의한 js 파일의 객체를 App.vue에 import 및 store의 modules 옵션에 추가
    5. module2
    6. 이후는 지금까지 했던 방식그대로 사용

paths

  • mapState나 mapGetters 등에서 state를 가져올 때 사용할 속성명들을 배열 형태로 지정하는 것이다.
  • state 객체가 아주 크고 여러 곳에서 사용되는 경우 mapState나 mapGetters를 사용하여 state의 특정 속성들만 컴포넌트 내부에 바인딩할 수 있다.
  • paths를 사용하면 바인딩할 state 속성들을 명시적으로 지정하여 코드 가독성을 높일 수 있다.
  • 만약 persistedstate를 사용할 때 원하는 속성만 LocalStorage에 저장하고 싶다면?
  • paths_plugin

profile
다크모드가 보기 좋아요

0개의 댓글