10

나는이 주제가 주관적이 될 가능성이 높다는 것을 알고 있으므로, 내가 연구하고있는 나의 특정 웹 응용 프로그램에 관한 것이 아닙니다.언제 JavaScript에서 MVC 프레임 워크를 사용해야합니까?

JavaScript의 경우 Backbone.js과 같은 MVC 라이브러리로 작업하지는 못했지만 로직과 뷰의 디커플링에 이점이 있습니다. 다른 한편으로는 프레임 워크를 배우고 응용 프로그램을 사용하여 응용 프로그램을 사용하는 데 시간을 할애하지 못할 수도 있습니다. 또한 JavaScript에서 모든 뷰를 처리하면 SEO가 훨씬 어려워집니다.

그렇다면 웹 응용 프로그램의 개념에 따라 Backbone.js 나 유사한 프레임 워크를 사용하는 것이 합당한 지 어떻게 결정해야합니까? 결정에 달려있는 것은 무엇입니까?

더 많은 객관적인 질문을하는 데 도움이됩니다.

+0

Underscore.js에는 다른 언어로의 포트가있는 것으로 보입니다. 실례지만 내심은 MVC와 어떤 관련이 있습니까? 그것은 단지 몇 가지 유틸리티 기능을 추가하는 것 같습니다. –

+0

JavaScript 웹 응용 프로그램에 [models] (http://backbonejs.org/#Model) 및 [views] (http://backbonejs.org/#View)를 제공합니다. 당신이 옳다는 것은 프레임 워크가 적어지고 툴셋이 많아진다는 것입니다. 그러나 나는 그것으로 완전하게 일하지 않았다. 다음은 [Backbone.js 및 전통적인 MVC]에 대한 기사입니다 (http://backbonejs.org/#FAQ-mvc). – danijar

+2

처음 엔 MVC가 javascript..angular, 밑줄, 백본에 적용될 수 있다는 것을 처음 알게되었을 때 나는 놀랐다. 그러나 그것을 사용하는 것이 나에게는 여전히 큰 의문점이다 ... 그것에 대한 좋은 설명은 많은 사람들에게 도움이 될 것입니다. –

답변

7

많은 클라이언트 측 자바 스크립트 MVC (MV *) 프레임 워크가 있습니다. 대부분은 MVC가 무엇이고 어떻게 웹 애플리케이션과 함께 작동해야하는지에 대해 다른 생각을 갖고있는 것으로 보입니다.

클라이언트 사이드 자바 스크립트의 복잡성을 관리하기 어려워지면 MV * 프레임 워크를 고려해야합니다. 팀에서 백엔드와 많은 비동기 통신을 수행하는 매우 동적 인 단일 페이지 응용 프로그램 (SPA)을 작성한 경우 고려해야합니다. 그렇지 않으면 매우 복잡한 자바 스크립트 코드로 끝나기 쉽습니다.

MV * 프레임 워크는 다음과 같은 방법 중 하나 이상에 도움이 될 것입니다 :

  • 코드를 구조화하는 방법을 정의하여. 이것은 프레임 워크가 얼마나 독창적인지에 따라 다양한 각도로 이루어집니다. 예를 들어, 백본은 프레임 워크가 아니라 라이브러리로 간주되므로 모델에 html을 바인딩하여 사용자에게 더 많은 의사 결정을 내릴 수 있습니다.
  • 데이터 페이지가 자동으로 같은 URL의 (단일 페이지 애플 리케이션을위한) 역사 및 검증
1

당신은 MVC 구조가 underscore.js 및 기타 유사한 도서관을 중심으로 기관이 MVC 구조가 쉽게 유지되어 서로 다른 목적으로 이용 될 수 있도록 엔티티에 속성으로 각 양식 필드에 초점을 함께 backbone.js를 사용하여 자바 스크립트에 포함시킬 수 있습니다 노우 조작 자바 스크립트 바인딩 이벤트, DOM 조작, 직렬화 좋은 이러한 구조에서 등

그것은 선택을위한 응용 프로그램의 목적에 따라

하는 구조에 적합한 자바 스크립트에 대한 MVC 또는 MVVM 구조 여부. MVVM 구조는 angular.js 또는 knockoutjs 또는보기 구성 요소에 동적 바인딩을위한 다른 라이브러리를 통해 자바 스크립트에 포함될 수 있습니다. 자바 스크립트를 사용할 수 있습니다.
MVVM 아키텍처는 재로드 또는 아약스없이 양식 필드 바인딩을 유지하는 데 유용합니다. js와 i의 아키텍처는 단지 몇 가지를 지적했습니다. 예를 들어 대한

: 다음 Serialize form inputs to JSON using Backbone.js

이 예에서

양식 값이 모델로 검색하고 그것을 조작 할 수 있으며, 비즈니스 로직을 추가 할 수 있으며 직렬화 할 수 있습니다 또는 이벤트 바인딩 및 인쇄 또는 어떤 일을 할 수

7

나는이 프로젝트에 따라 생각과 같은 유용한 기능을 제공하여 (또는 그 반대)

  • 를 업데이트됩니다 변경 그래서 경우.다음은 프론트 엔드 MV * 프레임 워크를 사용해야하는지 여부를 결정하는 데 도움이되는 체크리스트입니다. Ajax 요청의

    • 로트 전체 페이지를 다시로드를 필요로하지 않는 기능의
    • 많은 백엔드합니다. 댓글 추가, 페이지 매김 또는 무한 스크롤.
    • 백엔드에 모델/REST API가 있습니다. 프런트 엔드에서 동일한 구조를 복제/사용할 수 있습니다.
    • 다른 페이지에서 논리/DOM 조작 기능을 공유하고 있습니다.

    더 이상 포인트를 찾으면 더 추가 할 것입니다. 이것은 내가 지금 생각할 수있는 것이며 이것은 완전한 목록이 아닙니다. 어떤 제안이라도 환영합니다.

  • 관련 문제