[javascript] MobX 개요

MobX는 JavaScript 애플리케이션 상태 관리를 위한 간단하고 확장 가능한 상태 관리 라이브러리입니다. React, Angular, Vue와 같은 프레임워크와도 잘 통합되며, 훌륭한 성능과 사용자 경험을 제공합니다.

주요 개념

MobX에서 제공하는 주요 개념은 다음과 같습니다.

Observables

Observables는 상태 변화를 추적하는데 사용됩니다. JavaScript 객체를 observable로 선언하면, MobX는 해당 객체에서 변경 사항을 자동으로 감지하고 관찰합니다.

import { observable } from "mobx";

const user = observable({
  name: "John",
  age: 25
});

Actions

Actions는 상태 변화를 일으키는 함수들입니다. @action 데코레이터를 사용하여 액션을 정의하면, MobX는 해당 액션에 의해 변경된 상태를 추적하고 관리합니다.

import { action } from "mobx";

class UserStore {
  @observable user = { name: "John", age: 25 };

  @action
  updateUser(name, age) {
    this.user.name = name;
    this.user.age = age;
  }
}

Reactions

Reactions는 특정 observables에 대한 응답으로 실행되는 함수들입니다. Reactions를 사용하여 UI 업데이트, 네트워크 요청 등을 처리할 수 있습니다.

import { reaction } from "mobx";

reaction(
  () => user.age,
  age => {
    if (age >= 18) {
      console.log("성인입니다.");
    } else {
      console.log("미성년자입니다.");
    }
  }
);

MobX의 이점

  1. 단순함: MobX는 간단한 API를 제공하며, 복잡한 상태 관리 코드를 작성할 필요가 없습니다.
  2. 성능: MobX는 효율적인 상태 업데이트를 제공하여 렌더링 성능을 향상시킵니다.
  3. 유연성: MobX는 다양한 프레임워크와 함께 사용할 수 있으며, 기존 코드에 쉽게 통합할 수 있습니다.

더 많은 정보와 예제는 MobX 공식 문서를 참고하세요.