MVC,MVP 및 백본.js
있는 경우,건축 JavaScript 프레임워크는 주장을 구현하 MVC 또는 MVP 패턴에서 자신의 고전적인 형태로 많은 자바스크립트 개발자를 전망하지 않 MVC 및 MVP 으로 상호 배타적(우리는 실제로 더 많은 가능성이 보 MVP 엄격하게 구현할 때 웹 프레임워크 등 ASP.NET 또 GWT). 이것은 우리의 응용 프로그램에서 추가 발표자/보기 논리를 가질 수 있고 여전히 MVC 의 풍미라고 생각하기 때문입니다.
중추 참가자의 보스턴 기반 Bocoup Irene Ros 구독하는 이 생각의 방법으로,때 그녀 구분 전망을 한눈에 내려다 볼 수 있는 자신의 별개의 구성 요소,그녀가 필요로 무언가 실제로 조립하는 그녀. 이 될 수 있는 컨트롤러 경로(같은Backbone.Router
덮여 나중에 책에서),또는 콜백에 대응하여 데이터를 가져올 수 있습니다.즉,일부 개발자는 그 백본을 느낍니다.js 는 MVC 보다 MVP 에 대한 설명에 더 잘 맞습니다. 자신의보기:
-
발표자에서 MVP 에 대해 더 자세히 설명하고있습니다
Backbone.View
(레이어 사이에 넣는 템플릿과 데이터 바인딩)을 컨트롤러보다는 않습니다. -
모델은
Backbone.Model
에 적합합니다(MVC 의 모델과 크게 다르지 않습니다). -
뷰는 템플릿(예:핸들 바/콧수염 마크 업 템플릿)을 가장 잘 나타냅니다.
응답이 될 수 있는 것을 볼 수 있도 될 전망(당으로 MVC),기 때문에 중추는 충분히 유연하게 사용에 대한 여러 목적입니다. V MVC 및 P 에서 MVP 할 수 있습니다 모두에 의해 달성된Backbone.View
기 때문에 그들은 달성할 수 있게 두 가지 목적:두 렌더링 원자 부품과 조립이 그 구성 요소를 렌더링됩니다.
우리는 또한 볼 수 있는 근간의 책임 컨트롤러와 공유하 모두Backbone.View
Backbone.Router
고 다음 예에서,우리는 실제로 볼 수 있는 추진하고 있다는 것을 알고 있는 확실히 사실이다.
우리의 중추PhotoView
this.model.bind("change",...)
render()
방법을 달리하지만 몇 가지 다른 구현,사용자 상호 작용입니다 또한 취급 View(참조events
).
var
PhotoView
=
Backbone
.
View
.
extend
({
//... is a list tag.
tagName
:
"li"
,
// Pass the contents of the photo template through a templating
// function, cache it for a single photo
template
:
_
.
template
(
$
(
"#photo-template"
).
html
()
),
// The DOM events specific to an item.
events
:
{
"click img"
:
"toggleViewed"
},
// The PhotoView listens for changes to
// its model, re-rendering. Since tHere's
// a one-to-one correspondence between a
// **Photo** and a **PhotoView** in this
// app, we set a direct reference on the model for convenience.
initialize
:
function
()
{
this
.
model
.
on
(
"change"
,
this
.
render
,
this
);
this
.
model
.
on
(
"destroy"
,
this
.
remove
,
this
);
},
// Re-render the photo entry
render
:
function
()
{
$
(
this
.
el
).
html
(
this
.
template
(
this
.
model
.
toJSON
()
));
return
this
;
},
// Toggle the `"viewed"` state of the model.
toggleViewed
:
function
()
{
this
.
model
.
viewed
();
}
});
른(매우 다)의 의견은 중추를 더 비슷한 Smalltalk-80MVC,우리는 우리를 통해 갔다.
정기적으로 중추 블로거 데릭 베일리는 이전에 넣어,그것은 궁극적으로 최고의하지 않는 힘에 근간을 어떤 특정한 디자인 패턴이 있습니다. 디자인 패턴을 고려되어야한 가동 가능한 가이드를 어떻게 응용될 수 있는 구조적,그리고 이런 점에서 중추를 맞지도 않 MVC 도 MVP. 대신 여러 아키텍처 패턴에서 최고의 개념 중 일부를 빌려서 잘 작동하는 유연한 프레임 워크를 만듭니다.
그러나 이러한 개념이 어디서 왜 유래되었는지 이해할 가치가 있으므로 MVC 와 MVP 에 대한 설명이 도움이 되었기를 바랍니다. 백본 방법,MV*또는 응용 프로그램 아키텍처의 맛을 참조하는 데 도움이되는 것이 무엇이든 호출하십시오. 가장 구조 JavaScript 프레임워크를 채택 할 것이 자신의 고전적인 패턴을,의도적으로 또는 사고에 의해,그러나 중요한 것은 그들이 우리를 도와 응용 프로그램을 개발 구성되고,깨끗하고 쉽게 할 수 있습 유지됩니다.