You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Backbone.Model 提供 data model 的設計,使用 Backbone.Model 來處理 REST API
Backbone.View 的設計,充許基本的 presentation control logic 實作,這是 MVC 架構模式的作法。Backbone.View 也能維護一份內部的「state」,這也是 MVC 架構模式的作法。Presentation control logc 與 state 維護,如果實作為一個 global 的獨立系統,這能歸納為 MVVM 模式。
var modelA = new ModelA();
var modelB = new ModelB();
// modelA.bindTo('change', modelB.fooHandler());
this.listenTo(modelA, 'change', modelB.fooHandler());
modelA.set('foo', 'I am new');
前言
Backbone 是 Single Page Application 的軟體框架[1],View 與 Model 是 Backbone 框架所提供的 2 大設計模式,其用途簡述如下:
Backbone.View 的設計,充許基本的 presentation control logic 實作,這是 MVC 架構模式的作法。Backbone.View 也能維護一份內部的「state」,這也是 MVC 架構模式的作法。Presentation control logc 與 state 維護,如果實作為一個 global 的獨立系統,這能歸納為 MVVM 模式。
所以說,Backbone 框架是 MVC/MVP/MVVM 哪種模式並不重要,所以就稱它為 MV* 模式的框架。因為,最重要的是,你最後實作出來的 Application。你的 Application 是什麼架構模式,是由開發者決定的。
Backbone + React
Backbone.View
能包含一些基本的 control logic,並且能綁定Backbone.Model
的事件,例如:讓 Backbone 與 React 結合的方式:
Backbone.Model
做為 MVC 的 MBackbone.View
包含簡單的 control logic,而主要的工作是將 React Component 綁定Backbone.Model
事件,可將其視為 MVC 的 CReact + Backbone
在 React Component 裡加上 Backbone Model 的 Mixin[2]:
Backbone Model KVO Pattern
Backbone.Model 的設計採用 event binding 方式外,也支援 KVO Pattern 的實作[3]。
Sub Views
參考資料
[1] https://addyosmani.com/backbone-fundamentals/#client-side-mvc-single-page-apps
[2] http://joelburget.com/backbone-to-react/
[3] https://github.com/john-n-smith/mvcobject-js
[4] http://orizens.com/wp/topics/backbone-view-patterns-how-why-to-use-subviews/
[5] http://orizens.com/wp/topics/backbone-view-patterns-rendering-a-collection/
[6] http://perfectionkills.com/understanding-delete/
The text was updated successfully, but these errors were encountered: