programing

Vuex - getter를 사용할 때와 상태를 사용할 때

bestcode 2023. 1. 12. 22:14
반응형

Vuex - getter를 사용할 때와 상태를 사용할 때

최상의 성능을 위해 getter 또는 state를 언제 사용해야 할지 고민하고 있습니다.

코멘트해 주실 수 있는 시나리오를 몇 가지 소개해 드리겠습니다.

시나리오 1 - 액션과 게터의 Getters VS 상태

액션 또는 getter에서 제품 목록을 여러 번 사용하여 결과를 찾는 경우 getters.products 또는 state.products 중 어느 쪽을 사용하시겠습니까?

또, 같은 기능으로 제품을 10회 사용할 필요가 있는 경우, getters.products 또는 state.products에 10회 콜을 할 것인가, 아니면 처음에 변수를 지정하여 10회 사용할 것인가?다른 제품보다 성능이 향상되었습니까?

시나리오 2 - 함수를 반환하는 Getters

Vuex 문서에는 getter에 함수를 반환하면 해당 함수의 결과가 캐시되지 않는다고 기술되어 있습니다.그럼 1000개 상품 목록을 분류하는 게터가 있으면 안 되는 거네요?예를 들어 다음과 같습니다.

const getters = {
  sortedProducts: state => {
    return state.products.sort(a, b => {
      ...
    })
  }
}

따라서 제품이 업데이트될 때마다 정렬이 변경될 수도 있고 변경되지 않을 수도 있습니다. 그러면 전체 계산이 다시 수행됩니까? 아니면?

대신 액션과 돌연변이에 의해 수동으로 갱신되는 상태를 갖는 것이 좋을까요?

일반적으로 대량의 데이터와 관련된 기능을 게터에게 반환하는 것이 말이 됩니까?

Vuex gettersVue에 대해 Vuex 상태Vue 데이터에 대해 계산된 값입니다.

시나리오 1

액션 또는 getter에서 제품 목록을 여러 번 사용하여 결과를 찾는 경우 getters.products 또는 state.products 중 어느 쪽을 사용하시겠습니까?

여기서는 당신의 시나리오를 잘 이해할 수 없습니다.코드 예는 당신이 의미하는 바를 더 잘 설명해 줄 것입니다.

를 들어, '우리'가 있다고 .products제품 개체의 배열인 상태.정렬된 에 대한 액세스 권한이 필요한 경우(예:products 그리고 , 한군 a a, a a a a a a a를 만듭니다.sortedProducts.products하고 Vue가 을 재계산할 하기 때문입니다.products어레이 변경

또, 같은 기능으로 제품을 10회 사용할 필요가 있는 경우, getters.products 또는 state.products에 10회 콜을 할 것인가, 아니면 처음에 변수를 지정하여 10회 사용할 것인가?다른 제품보다 성능이 향상되었습니까?

성능에 관심이 있는 경우 함수 시작 부분에 변수를 할당할 필요가 없습니다.스토어 상태 또는 getter에 액세스하기 위한 퍼포먼스 비용은 무시할 수 있습니다.여기서는 코드 가독성이 더 중요합니다.

시나리오 2

sortedProductsgetter 함수는 함수를 반환하지 않으므로 Vuex는 결과를 캐시합니다.

대신 액션과 돌연변이에 의해 수동으로 갱신되는 상태를 갖는 것이 좋을까요?

이 모든 걸 말하는 거라면sortedProducts게터, 안 돼

일반적으로 대량의 데이터와 관련된 기능을 게터에게 반환하는 것이 말이 됩니까?

함수를 반환하기 위해 getter가 필요한 유일한 상황은 getter가 파라미터를 받아들일 수 있도록 하는 것입니다.이 경우 getter는 Vue 컴포넌트 계산 속성이 아닌 Vue 컴포넌트 메서드에 가깝습니다.

함수를 반환하고 대량의 데이터를 처리하는 getter가 있는 경우 Vuex는 함수 호출의 결과를 캐싱하는 데 도움을 줄 수 없습니다.호출 횟수를 최소화하거나 메모 을 통합하는 방법을 찾아야 합니다.

언급URL : https://stackoverflow.com/questions/52386161/vuex-when-to-use-getters-and-when-to-use-state

반응형