programing

ReactJS 애플리케이션의 MVVM 아키텍처 패턴

bestcode 2023. 2. 10. 21:55
반응형

ReactJS 애플리케이션의 MVVM 아키텍처 패턴

입니다.react ★★★★★★★★★★★★★★★★★」JavaScript 유니버설, 유니버설, 유니버설 등 개를 만들었습니다.react★★★★★★ 。

오늘 당사의 CTO에서 다음과 같이 말했습니다.어플리케이션에 소프트웨어 아키텍처 패턴을 사용하고 있습니까?

수 없다, 는 「마음껏」, 「마음껏」를 .Android용 which which 하는 팀MVVM응용 프로그램에 사용할 수 있습니다.

욕심을 부리고 있지만 트렌드 방법론이나 예를 찾을 수 없습니다.가 쓴 적이 있어요.Redux,Redux-Saga,React-Context기타 등등.

우리 CTO에게 어떻게 설명해야 할지 모르겠고 그의 답변은 무엇입니까?

따라서: 앱에 정말로 소프트웨어 아키텍처 패턴이 필요한가?

React 자체는 소프트웨어 아키텍처에 대해 특별히 고집하는 것은 아닙니다.상태 및 데이터 공유(prop) 관리 지침과 함께 재사용 가능한 구성요소 패러다임을 촉진하는 라이브러리입니다.을 느느음, 음음음음음음음음 음음음음음음음 at at at at this this라고 했다.the V in MVC후 좀 더 .A JavaScript library for building user interfaces.

물론 React 앱과 관련된 일반적인 툴링은 함께 사용할 경우 아키텍처와 같은 일부에 적합합니다.

생각할 수 있는 몇 가지 방법:

Simple React 애플리케이션은 "VVM" 또는 "VC"일 수 있습니다.

MVC는 아마도 개발업계에서 둘 중 더 잘 알려져 있을 것이다.컨트롤러(C)와 뷰 모델(VM)의 주요 개념적 차이는 한마디로 요약할 수 있습니다.컨트롤러는 이벤트를 수신하여 올바른 방향으로 라우팅하는 등 다양한 역할을 수행할 수 있습니다.애플리케이션 전체의 기능을 용이하게 하는 접착제입니다.반면 뷰 모델은 단순히 데이터의 현재 상태를 모델에 부착하는 역할을 합니다.

따라서 Facebook의 "V in MVC"의 원래 용도는 "V in MVVM"일 수도 있습니다.- 컨트롤러라는 용어는 백엔드 개발 세계에서 더 의미가 있습니다.

컴포넌트에 Redux fetch 있다componentDidMount또는 데이터 경합이 제한된 GraphQL)을 활용하는 것은 단순한 "VVM" 모델이라고 할 수 있습니다.

View-Model(VM): 컴포넌트 관련 코드로 단순한 상태를 관리하고 데이터를 View에 직접 전달하며 잠재적으로 View에서 직접 데이터를 전달할 수 있습니다.

표시(V):비주얼 (JSX, CSS)

복잡함을 더하면 "MVVM"/"MVC"라고 부를 수 있습니다.

★★★★★★★★★★★★★★★★★★★★★★★★」redux-saga또는 단순한 Respect 컴포넌트 상태로 엉뚱한 일을 시작할 수도 있습니다.모델 조작을 도입하고 있습니다.모델(M)은 다음 두 가지 이상을 나타낼 수 있습니다.

  1. 응용 프로그램의 실제 비즈니스 로직
  2. 클라이언트의 복잡한 동작 저장 및 관리

비즈니스 로직은 실제로는 바람직하지 않을 수 있습니다.예를 들어 서버를 제어할 수 있다면 모든 비즈니스 로직을 한 곳에 보관하고 사용자와 대화하기 위해 필요한 것을 UI에 제공하는 것이 좋습니다.그러나 REST 엔드포인트가 한정되어 있어 (예를 들어 sagas 또는 컴포넌트 내에서) 논쟁을 벌여야 하는 경우에는 비즈니스 논리입니다.

클라이언트의 동작 관리는, 특히 세션에 근거해 유저에게 다른 것을 표시하는 등, 복잡한 애플리케이션(미등록 유저 대 유저 대 admin 등)에서 행해집니다.클라이언트만 사용하도록 포함된 모든 Redux 저장소 상호 작용에서 이 작업을 수행할 수 있습니다.


면책사항: MVC, MVVM 등에 대해 논의하면 정확히 무엇을 의미하는지 여러 가지 의견이 나올 수 있습니다[1].앞에서 본 공통 패턴과 MVC/MVVM에 어떻게 적합한지 간에 유사점을 도출하려고 했지만, 접근 방법이나 보다 세부적인 방법이 많이 있습니다.시스템이 알기 쉽다면, 사용 사례와 개발 규모에 맞는 수준으로 모듈러형, 드라이형, 추상형 등 라벨을 붙이는 데 너무 집착하지 않을 것입니다.

[1] 이 질문에 대한 답변과 코멘트에서 좀 더 길게 논의됩니다.

Vue 3은 MVVM:

      Proxy       Update
  Model → ViewModel → View
  Model ← ViewModel ← View
      Update      Event

대응:

     setState     Update
  Model → ViewModel → View
  Model ← ViewModel ← View
      Update      Event

차이점은 프레임워크가 ViewModel로의 변경을 모델에 통지하는 방법뿐입니다.

단순한 웹 앱에는 MVC, MVVM이 필요하지 않으며 리액트 IMO도 필요하지 않습니다. 심플 리액트의 진화 가능성JS App은 PWA(Progressive Web App)가 되려고 할 경우 MVVM/MVC/의 필요성을 인식할 수 있습니다.즉, 오프라인 및 기타 특정 온라인 로직을 수행하려고 하는 경우입니다.이는 모바일 앱 개발을 위한 자연스러운 사고방식입니다.그런 다음 로컬 스토리지 또는 IndexedDB(웹용) 또는 Back-End/Rest/에서 정보를 가져올 수 있습니다.그러면 모델, 스토리지/리포지토리/INFO/View Model/또는 컨트롤러/View를 분리하는 것이 자연스럽고 실제로 모든 것이 올바르게 작동하기 위해 필요합니다.

언급URL : https://stackoverflow.com/questions/51506440/mvvm-architectural-pattern-for-a-reactjs-application

반응형