[javascript] MobX와 컴포넌트 라우팅

최근 웹 애플리케이션에서는 상태 관리와 컴포넌트 라우팅이 매우 중요한 요소로 자리잡고 있습니다. MobX는 React와 함께 사용되는 간단하면서도 강력한 상태 관리 라이브러리로 알려져 있습니다. 컴포넌트 라우팅은 사용자가 웹 애플리케이션 내에서 다른 페이지로 이동할 수 있도록 도와주는 기능입니다. 이번 글에서는 MobX와 컴포넌트 라우팅을 함께 사용하는 방법에 대해 알아보겠습니다.

MobX

MobX는 JavaScript 상태 관리 라이브러리로, 단일 상태 트리를 사용하여 애플리케이션의 상태를 관리할 수 있습니다. MobX를 사용하면 상태 변화를 감지하고 이에 따라 자동으로 화면을 업데이트할 수 있습니다.

다음은 MobX의 간단한 사용 예제입니다.

import { observable, action } from 'mobx';

class CounterStore {
  @observable count = 0;

  @action increment() {
    this.count++;
  }

  @action decrement() {
    this.count--;
  }
}

const counterStore = new CounterStore();

export default counterStore;

위의 예제에서는 CounterStore 클래스를 정의하고, count라는 옵저버블 속성과 increment, decrement라는 액션 메서드를 가지고 있습니다. @observable 데코레이터를 사용하여 상태를 관찰 가능하게 만들고, @action 데코레이터를 사용하여 액션 메서드를 선언합니다.

React Router

React Router는 React 애플리케이션 내에서 컴포넌트 기반의 라우팅을 가능하게 해주는 라이브러리입니다. React Router를 사용하면 사용자가 다른 URL로 이동할 때마다 해당하는 컴포넌트가 로드되어 화면에 표시됩니다.

React Router의 간단한 사용법은 다음과 같습니다.

import { BrowserRouter as Router, Route } from 'react-router-dom';

function App() {
  return (
    <Router>
      <Route path="/" exact component={Home} />
      <Route path="/about" component={About} />
      <Route path="/contact" component={Contact} />
    </Router>
  );
}

export default App;

위의 예제에서는 BrowserRouter를 사용하여 라우터를 설정하고, Route 컴포넌트를 사용하여 각 경로에 해당하는 컴포넌트를 연결합니다. / 경로는 홈 페이지를 나타내고, /about 경로는 소개 페이지를, /contact 경로는 연락처 페이지를 나타냅니다.

MobX와 React Router 함께 사용하기

MobX와 React Router를 함께 사용하기 위해서는 MobX의 상태를 React 컴포넌트에서 사용할 수 있도록 해야 합니다. 이를 위해 MobX Provider를 사용하여 MobX 상태를 루트 컴포넌트에 제공해야 합니다.

import React from 'react';
import { render } from 'react-dom';
import { BrowserRouter as Router, Route } from 'react-router-dom';
import { Provider } from 'mobx-react';

import counterStore from './stores/counterStore';

import App from './components/App';

const stores = { counterStore };

render(
  <Provider {...stores}>
    <Router>
      <Route path="/" component={App} />
    </Router>
  </Provider>,
  document.getElementById('root')
);

위의 예제에서는 Provider 컴포넌트를 사용하여 MobX 상태를 제공하고, RouterRoute를 사용하여 라우팅을 설정합니다. counterStore는 MobX 상태 관리를 위해 사용된 예시입니다.

이렇게 MobX와 React Router를 함께 사용하면, MobX로 상태를 관리하고 React Router로 컴포넌트 라우팅을 수행할 수 있습니다. 이는 웹 애플리케이션의 상태 관리와 사용자 경험을 향상시키기 위한 좋은 방법입니다.

이 글에서는 MobX와 컴포넌트 라우팅의 기본적인 개념과 사용법에 대해 알아보았습니다. MobX와 React Router를 함께 사용하면 상태 관리와 라우팅을 효율적으로 처리할 수 있으며, 웹 애플리케이션의 개발 속도와 사용자 경험을 향상시킬 수 있습니다.


참고 문서: