programing

VUEX API 계층이 변환됩니까, 아니면 GETER입니까?

linuxpc 2023. 6. 10. 08:31
반응형

VUEX API 계층이 변환됩니까, 아니면 GETER입니까?

API에서 응답이 있다고 가정해 보겠습니다.

{
   name: 'Mat',
   last_name: 'Kowalsky',
}

사용자 인터페이스는 다음과 같습니다.

{
    name: string;
    lastName: string;
    children: Person[]
}

한 모델을 다른 모델로 전환하기에 가장 좋은 장소는 어디입니까?내가 이렇게 돌연변이를 일으켜야 하나요?

 const setPerson: (state: State, person: any) => {
     state.person = {
        name: person.name,
        lastName: person.last_name,
        children: (person.children) ? person.children : []
     } 
  }

아니면 그런 식으로 몸을 담그는 것일 수도 있습니다.

   const getters = {
      person: (state: State) => {
         return {
             name: state.person.name,
             lastName: state.person.last_name,
             children: (state.person.children) ? state.person.children : []
         }
      }

   }

안부 전해요

새로운 사람을 삽입할 때 돌연변이가 한 번 호출됩니다.getter는 아마도 자주 불려질 것입니다.

그것이 제가 돌연변이에 변형을 넣었던 이유입니다.

굳이 선택하자면, 그것은 돌연변이이지만, 당신의 가게는 당신의 api에 의존하기 때문에, 나는 가장 좋은 방법이라고 생각합니다.

당신은 당신의 돌연변이가 이미 사용자 객체를 가지고 있는 것처럼 API의 응답을 당신의 사용자에게 매핑할 수 있습니다.

약속 있음:

myPromise.then(res => ({ res.name, lastName: res.last_name }))

Rxjs 포함:

myObservable.pipe(
   map(res => ({ res.name, lastName: res.last_name }))
)

응답을 사용할 때는 변환을 사용해야 합니다.매장 속성에 따라 달라지지 않기 때문에.

게터는 다른 저장소 속성에 따라 달라지며 저장소 속성이 변경되면 자동으로 변경됩니다.따라서, 당신의 자산이 당신의 스토어의 다른 자산에 대한 종속성을 가지고 있다면, 항상 getters를 사용하는 것이 더 좋습니다.

언급URL : https://stackoverflow.com/questions/50986864/vuex-api-layer-in-mutation-or-getter

반응형