[javascript] MobX의 실수 예방 방법

MobX는 JavaScript 애플리케이션에서 상태 관리를 용이하게 해주는 강력한 라이브러리입니다. 하지만 적절한 사용법을 따르지 않으면 일부 문제가 발생할 수 있습니다. 이번 블로그 포스트에서는 MobX를 사용할 때 흔히 발생하는 실수를 예방하는 방법에 대해 알아보겠습니다.

1. Observable 상태 갱신에 주의하세요.

MobX에서는 관찰 가능한 observable 상태를 사용하여 상태가 변경될 때 자동으로 UI가 업데이트되도록 할 수 있습니다. 하지만 observable 상태를 다룰 때 주의해야 할 몇 가지 사항이 있습니다.

import { observable } from "mobx";

const person = observable({
  name: "John",
  age: 30,
});

// 잘못된 방법: 직접 속성을 수정합니다.
person.name = "John Doe";

// 올바른 방법: set 메서드를 사용하여 속성을 업데이트합니다.
person.set("name", "John Doe");

// 필요한 만큼의 속성만 변경합니다.
person.set("age", 31);

2. Computed 속성을 올바르게 사용하세요.

MobX에서는 computed 속성을 사용하여 상태의 파생값을 계산할 수 있습니다. 하지만 computed 속성을 올바르게 사용하지 않으면 예상치 못한 동작이 발생할 수 있습니다.

import { observable, computed } from "mobx";

const person = observable({
  firstName: "John",
  lastName: "Doe",
});

const fullName = computed(() => {
  const { firstName, lastName } = person;
  return `${firstName} ${lastName}`;
});

// 잘못된 방법: computed 속성에 직접 접근하여 값을 수정합니다.
fullName.set("John Smith");

// 올바른 방법: observable 속성을 변경하여 computed 속성을 자동으로 재계산합니다.
person.firstName = "John";
person.lastName = "Smith";

3. Observer 컴포넌트를 사용하여 리랜더링 성능을 개선하세요.

MobX에서는 observer 컴포넌트를 사용하여 자동으로 상태 변화를 감지하고 컴포넌트를 리렌더링할 수 있습니다. 하지만 observer 컴포넌트를 사용할 때 주의해야 할 몇 가지 사항이 있습니다.

import { observer } from "mobx-react-lite";

const PersonInfo = observer(({ person }) => {
  const { firstName, lastName } = person;

  return <div>{`${firstName} ${lastName}`}</div>;
});

이렇게 MobX를 올바르게 사용하면 애플리케이션의 상태 관리와 리랜더링 성능을 향상시킬 수 있습니다. MobX의 공식 문서와 예제 코드를 참고하여 더 자세한 내용을 학습해보세요.

참고 자료