이번 기술 블로그에서는 MobX를 사용하여 데이터를 필터링하고 정렬하는 방법에 대해 알아보겠습니다. MobX는 상태 관리 라이브러리로, 반응형 애플리케이션을 쉽게 개발할 수 있도록 도와줍니다.
MobX란?
MobX는 JavaScript와 TypeScript의 상태 관리 라이브러리입니다. 이 라이브러리는 단방향 데이터 흐름과 함께 상태를 변경하고 추적할 수 있도록 도와줍니다. MobX를 사용하면 UI 컴포넌트가 자동으로 업데이트되어 데이터의 변화를 실시간으로 반영할 수 있습니다.
데이터 필터링 및 정렬 예제
MobX를 사용하여 데이터를 필터링하고 정렬하는 예제를 알아보겠습니다. 아래는 간단한 Todo 목록을 가지고 있는 상태 관리 클래스입니다.
import { observable } from 'mobx';
class TodoStore {
@observable todos = [
{ id: 1, text: 'Task 1', completed: false },
{ id: 2, text: 'Task 2', completed: true },
{ id: 3, text: 'Task 3', completed: false },
];
}
이제 MobX의 computed
를 사용하여 필터링 및 정렬된 데이터를 가져올 수 있는 getter 메소드를 추가해 보겠습니다.
import { observable, computed } from 'mobx';
class TodoStore {
@observable todos = [
{ id: 1, text: 'Task 1', completed: false },
{ id: 2, text: 'Task 2', completed: true },
{ id: 3, text: 'Task 3', completed: false },
];
@observable filter = '';
@computed get filteredTodos() {
const filteredTodos = this.todos.filter(todo =>
todo.text.toLowerCase().includes(this.filter.toLowerCase())
);
return filteredTodos.sort((a, b) =>
a.text.localeCompare(b.text)
);
}
}
위 예제에서는 filteredTodos
라는 computed getter 메소드를 정의하였습니다. 이 메소드는 filter
상태에 따라 필터링되고 정렬된 todos
배열을 반환합니다. filter
상태는 사용자의 입력에 따라 업데이트되고, computed getter 메소드는 todos
와 filter
상태가 변경될 때마다 자동으로 호출됩니다.
이제 UI 컴포넌트에서 filteredTodos
를 사용하여 필터링 및 정렬된 데이터를 렌더링할 수 있습니다.
결론
MobX를 사용하면 데이터의 필터링 및 정렬과 같은 상태 관리 작업을 간편하게 처리할 수 있습니다. MobX의 반응성을 통해 데이터의 변화를 실시간으로 반영할 수 있으며, computed getter 메소드를 사용하여 필요한 데이터를 자동으로 도출할 수 있습니다.
더 많은 MobX 사용 예제와 기능에 대해 알아보려면 공식 MobX 문서를 참조하세요.
참고 자료: