집 >
웹 프론트엔드 >
JS 튜토리얼 >
Redux vs Mobx : 프로젝트에 가장 적합한 것은 무엇입니까?
Redux vs Mobx : 프로젝트에 가장 적합한 것은 무엇입니까?
William Shakespeare
풀어 주다: 2025-02-16 09:40:10
원래의
837명이 탐색했습니다.
키 테이크 아웃
Redux와 Mobx는 모두 클라이언트 측 상태 관리를 제공하고 시간 여행 디버깅을 지원하며 React/React 기본 프레임 워크에 대한 광범위한 지원을 제공하는 오픈 소스 라이브러리입니다. 그러나 그들은 핵심 철학과 접근 방식이 다릅니다.
mobx는 배우고 사용하기 쉽고, 쓰기에 코드가 적고, 객체 지향 프로그래밍을 완벽하게 지원하며, 중첩 데이터를 쉽게 다루게합니다. 그러나 너무 많은 자유를 제공하여 인재 할 수없는 코드로 이어질 수 있으며, 디버그하기가 어렵고 앞으로 더 나은 대안이있을 수 있습니다. .
Redux는 주 코드 작성에 대한 엄격한 지침으로 인해 크고 복잡한 프로젝트를 구축하는 데 더 인기 있고 적합하여 테스트를 쉽게 작성하고 관리 가능한 코드를 개발할 수 있습니다. 그러나 더 많은 보일러 플레이트 코드가 필요하며 소규모 프로젝트에 적합하지 않습니다.
Redux와 Mobx의 코드 비교는 Mobx의 코드 기반이 더 얇고 응용 프로그램을 더 빨리 구축하는 데 도움이 될 수 있음을 보여줍니다. 그러나 Mobx와 함께 가난하고 유지할 수없는 코드를 작성하는 것은 매우 쉽습니다.
Redux 또는 Mobx 사용 여부에 대한 결정은 현재 진행중인 프로젝트 유형과 귀하가 이용할 수있는 리소스에 따라 다릅니다.
많은 JavaScript 개발자의 경우 Redux에 대한 가장 큰 불만은 기능을 구현하는 데 필요한 보일러 플레이트 코드의 양입니다. 더 나은 대안은 유사한 기능을 제공하지만 쓸 수있는 코드가 적은 Mobx입니다.
Mobx 초보자의 경우 Mobx의 제작자가 쓴이 소개를 간단히 살펴보십시오. 이 튜토리얼을 통해 실질적인 경험을 얻을 수 있습니다.
이 기사의 목표는 JavaScript 개발자가 프로젝트에 가장 적합한이 두 주 관리 솔루션 중 어느 것을 결정하도록 돕는 것입니다. 이 CRUD Redux 프로젝트를 Mobx로 마이그레이션 하여이 기사의 예제로 사용했습니다. 먼저 Mobx 사용의 장단점에 대해 논의한 다음 두 버전의 실제 코드 샘플을 시연하여 차이점을 보여줍니다.
.
이 기사에서 언급 한 프로젝트에 대한 코드는 Github에서 찾을 수 있습니다 : .
Redux Crud 예제
mobx crud 예
이 게시물을 즐기면 Sitepoint Premium에 가입하고 React 및 Redux를 사용하여 양식 작업에 대한 코스를 시청할 수도 있습니다.
Redux와 Mobx는 공통점이 무엇입니까?
먼저, 둘 다 공통점이 무엇인지 살펴 보겠습니다. 그들 : <.>
는 오픈 소스 라이브러리 입니다
클라이언트 측 국가 관리를 제공
Redux-Devtools-Extension을 통한 지원 시간 여행 디버깅
는 특정 프레임 워크에 묶여 있지 않습니다
는 React/React Native 프레임 워크에 대한 광범위한 지원을 제공합니다
1. 배우고 사용하기 쉬운 초보자의 경우 30 분만에 Mobx를 사용하는 방법을 배울 수 있습니다. 기본 사항을 배우면 바로 그게 다릅니다. 새로운 것을 배울 필요가 없습니다. Redux를 사용하면 기본 사항도 쉽습니다. 그러나 더 복잡한 응용 프로그램을 구축하기 시작하면 다음을 처리해야합니다.
redux-thunk 로 비동기 동작을 처리합니다
Redux-Saga 로 코드를 단순화합니다
계산 된 값 등을 처리하기 위해 선택기 정의
Mobx의 경우,이 모든 상황은“마법 적으로”처리됩니다. 그러한 상황을 처리하기 위해 추가 라이브러리가 필요하지 않습니다.
2. 를 쓰는 코드가 적습니다
Redux에서 기능을 구현하려면 최소 4 개의 아티팩트를 업데이트해야합니다. 여기에는 감속기, 동작, 컨테이너 및 구성 요소에 대한 코드 작성이 포함됩니다. 소규모 프로젝트를 진행하는 경우 특히 성가신 일입니다. Mobx는 최소 2 개의 아티팩트 (예 : 상점 및보기 구성 요소)를 업데이트하면됩니다.
3. 객체 지향 프로그래밍에 대한 완전한 지원
객체 지향 코드를 작성하는 것을 선호하는 경우 OOP를 사용하여 MOBX로 상태 관리 로직을 구현할 수 있다는 것을 알게되어 기쁩니다. @observable 및 @observer와 같은 데코레이터를 사용하여 평범한 JavaScript 구성 요소를 쉽게 만들 수 있으며 반응성을 저장할 수 있습니다. 기능 프로그래밍을 선호하는 경우 문제가 없습니다. 지원됩니다. 반면에 Redux는 기능적 프로그래밍 원칙에 따라 크게 준비되어 있습니다. 그러나 클래스 기반 접근 방식을 원한다면 Redux-Connect-Decorator 라이브러리를 사용할 수 있습니다.
4. 중첩 된 데이터를 처리하는 것은 쉬운
입니다
대부분의 JavaScript 응용 프로그램에서는 관계형 또는 중첩 데이터를 사용하여 작업 할 수 있습니다. Redux 상점에서 사용할 수 있으려면 먼저 정상화해야합니다. 다음으로 정규화 된 데이터에서 참조 추적을 관리하려면 더 많은 코드를 작성해야합니다.
mobx에서는 데이터를 비정규 형식으로 저장하는 것이 좋습니다. Mobx는 귀하의 관계를 추적 할 수 있으며 자동으로 변경 사항을 다시 렌더링합니다. 도메인 객체를 사용하여 데이터를 저장하면 다른 상점에서 정의 된 다른 도메인 객체를 직접 참조 할 수 있습니다. 또한, 복잡한 데이터 문제를 쉽게 해결하기 위해 (@) 컴퓨터 데코레이터 및 수정자를 사용할 수 있습니다.
mobx를 사용하지 않는 3 가지 이유