programing

vuex getter 캐시를 사용하지 않도록 설정하려면 어떻게 해야 합니까?

randomtip 2022. 8. 31. 22:04
반응형

vuex getter 캐시를 사용하지 않도록 설정하려면 어떻게 해야 합니까?

Vue 계산 속성에서 캐시를 사용하지 않도록 설정할 수 있습니다.cache: false선택.예를 들어 다음과 같습니다.

computed: {
  now: {
    cache: false,
    get() {
      return Date.now();
    }
  }
}

하지만 Vuex getters에서 이 기능을 사용할 수 있는지 궁금합니다.

캐시를 "비활성화"하기 위해서는 함수로 사용되는 getter가 캐시되지 않는다는 점을 이용할 수 있습니다.

vuex 문서에서

메서드를 통해 액세스되는 getter는 호출할 때마다 실행되며 결과는 캐시되지 않습니다.

캐시되지 않은 속성에 액세스 할 때 괄호(실제로 호출 함수)를 추가하는 것을 꺼려하지 않으면 다음과 같은 것을 사용할 수 있습니다.

getters: {
  myNonCachedGetter: state => () => {
    // original getter body
  }
}

그 후, 로서 사용됩니다.myNonCachedGetter().

vuex의 최신 버전에서는 다음 기능이 작동하지 않는 것으로 나타났습니다.

다만, 통상의 getter로 하고 싶은 경우는, 호출이 있는 함수로 정리할 수 있습니다.

getters: {
  myNonCachedGetter: state => (() => {
    // original getter body
  })()
}

코드를 읽기 어려워 보이긴 하지만 다음과 같이 단순하다고 할 수 있습니다.myNonCachedGetter.

언급URL : https://stackoverflow.com/questions/50236767/how-can-i-disable-vuex-getter-caching

반응형