상태관리 구조 - woowa-techcamp-2021/store-4 GitHub Wiki

Model

  • 각 데이터에 관련된 로직 정의
class ProductAttributes {
  id: number;
  name: string;
  discountRate: number;

  ...

  constructor(product: ProductAttributes) {
    this.id = product.id;
    this.name = product.name;
    this.discountRate = Number(product.discountRate);

    ...
  }
}

class Product extends ProductAttributes {

  ...

  get discountedPrice(): number {
    return this.price * (1 - this.discountRate / 100);
  }

  get isDiscounting(): boolean {
    return this.discountRate > 0 ? true : false;
  }
}

Store(Mobx)

  • Repository를 호출한 응답값을 Model로 매핑
  • 전역상태 관리
  • 상태를 변경하는 로직 정의

Repository

  • API 요청 후 응답 반환