문제

JavaScript에서 MVP - 수동 뷰 패턴을 구현하는 것에 대해 생각하고 있습니다.대부분의 경우 볼 수는 발표자가 이벤트 리스너를 첨부하는 간단한 DOM 요소입니다.그러나 자바 스크립트 기반 의사 선택 상자, 자동 제안 또는 Aria 기능과 같은 위젯에 관해서는 JavaScript 뷰 클래스의 일부이거나 논리가 발표자의 일부가되도록 논리해야합니까? JavaScriptMVCS보기 view 템플리트 만 발생하는 것 같습니다.모든 논리.그러나 저에게는 HTML SelectBox를 듣는 발표자와 진짜 선택 상자를 모방하는 JavaScript 논리가있는 의사 선택 상자를 듣는 사람 사이에 다른 발표자간에 다른 것 같습니다.둘 다 상자가 내부적으로 일하는 방식을 걱정하지 않아야합니다. 변경 이벤트를 청취해야합니다.

그래서 당신에게 무엇을 생각할 것입니다.View 클래스의 작업은 무엇입니까?

도움이 되었습니까?

해결책

뷰의 작업은 어댑터 view 기술입니다. 이 경우 View 기술은 JavaScript를 통해 HTML을 통한 jQuery입니다. 보기는 세 가지를하도록 설계되어야합니다.

  • 이벤트가 발생할 때 알고 있으며,이 이벤트를 발표자에게 전달 ( postal.js )
  • 발표자에게 (질문 할 때) " x " x 은 뷰에 표시된 값입니다.
  • 발표자로부터 메시지를 수락합니다 (일반적으로 직접적인 방법 호출을 통해)보기의 값을 변경합니다.

수동 뷰 패턴의 뷰는 상태가 아닌 입니다. 나는 반복하고, view는 국가 을 나타내지 않는다. 그게 무슨 뜻이든지 국가 전환에 대한 모든 국가와 지식은 발표자가 표현한다는 것입니다. 이보기는 단순히 발표자와 실제 뷰 기술간에 간접적 인 접착제입니다. 위의 총 3 개의 글 머리 기호를 넘어서는 을 포함하는 정보와 관련된 것에 대한 지식을 캡슐화하지 않습니다. 이것은 중요한 상태가 될 것으로 예상하지 않아야하기 때문에 중요합니다. 뷰의 상태를 관리 할 책임이있는 발표자를 항상 잡아야합니다.

여기에 이미지 설명을 입력하십시오

위의 스택은 모델, 뷰 및 발표자 상호 작용뿐만 아니라 뷰 기술 및 컨트롤러와의 관계를 방해하는 방법을 보여줍니다.

  • 브라우저, HTML 및 DOM (jQuery를 통해 관리)은 기술 입니다. 이들은 본질적으로 복잡하고 당신의 모델을 대표 할 수 없다는 것입니다.
  • view> 뷰 기술 에서 논리를 보호합니다. 발표자 에서 일반 오래된 코드에 집중할 수 있도록 간접적 인 것입니다. 은 발표자에게 다시 통신하기 위해 몇 가지 종류의 메시징을 사용해야합니다. 이렇게하면보기와 발표자 간의 양방향 의존성이 방지됩니다. 또한 여러 발표자가보기를 조작 할 수 있습니다.
  • 발표자 은 뷰의 추상적 특성을 이해하고보기에 대한 인터페이스를 기반으로 모델 모델 을 검색하는 방법과 모델 서버로 돌아가는 방법을 이해할 수 있습니다.
  • 모델 특정 시점에서의 상태를 나타냅니다 . 또한 컨트롤러 발표자 사이의 DTO 역할 수 있습니다. JavaScript에서는 쉽고 때로는 모델 에 발표자 동작을 추가하는 것이 쉽고 때로는
  • 컨트롤러 은 응용 프로그램 내의 탐색을 조정하고 프레젠테이션에서 백 엔드 서비스를 추상화 할 책임이 있습니다.

다른 팁

뷰 객체는 그 자체를 그리는 책임을 져야합니다.수동적 인 뷰는 을 수행 할 수 있습니다.자체 이벤트를 발사하는 데 책임이 있어야합니다.사용자 정의 선택 상자 위젯이므로 일반 선택 상자와 다른 파일이되지 않습니다.

발표자가 모든 견해를 통해 모든 견해를 인수 한 경우 전혀 볼 필요가 없습니다.발표자 만 가지고있을 수도 있습니다.

JavaScriptMVC의 뷰는 더미 클라이언트 측면 템플릿입니다.노드 컨트롤러가보다 전통적인보기 역할을 수행하는 경향이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top