2011-10-06 72 views
21

我正在尋找解決我的JS工具箱。由於某些產品原因,dojo將在那裏。現在我想知道添加backbone.js是否有意義。做Dojo(還有其他一些事情 - 我知道這一點)和backbone.js重疊或補充?重疊部分的概念差異是什麼?有沒有例子一起使用? (我知道這是一個相當寬泛的問題,可能會顯示出我的第二級無知)比較backbone.js和Dojo

回答

30

Dojo涵蓋的範圍比Backbone.js更廣。 如果您已經精通Dojo,那麼您想在工具箱中考慮Backbone.js的唯一原因是因爲它輕巧。您可能會也可能不會喜歡API差異 - 這完全是一個選擇問題。 如果您已經在一個項目中使用Dojo,那麼在同一個項目中使用Backbone.js確實毫無意義,因爲Dojo擁有構建MVC體系結構所需的一切,儘管在表面層面上它可能並不那麼明顯。 Dojo數據存儲功能強大,Dijit小部件旨在與Dojo數據存儲配合使用。使用Backbone模型爲Dijit小部件提供數據後端將非常麻煩。這是沒有必要的,因爲在Dojo中,數據層和表示層非常整齊地分離,並且非常出色。 但是如果你只是需要一個輕量級的MVC結構爲您的應用程序,然後Backbone.js的可能爲您提供比使用Dojo.But同樣取決於你的應用程序和你的要求一個可能比其他更合適的打火機替代...

13

我有以前的Backbonejs經驗,但我即將開發一個依賴Dojo的項目,我剛開始挑選它。不過,我會在這裏評論我迄今爲止所觀察到的情況,儘管它很少。

我們希望有一個現代Web應用程序架構風格(思考twitter,quora,gmail),這些類型的架構可以很容易地由像Backbonejs的東西提供。它賦予你的概念雖然是基本的,但它們都是你所需要的。老實說,我不認爲Dojo真的提供了開箱即用的一切Backbonejs給你的例子:路由器和視圖,以及它們提供的有用方法,用於輕鬆快速地聲明事件,觸發方法URL更改等。

在Dojo身邊,我會承認商店在那裏,並且您可以將它們連接到小部件,但這與Backbonejs提供的抽象模型&不同。在Dojo網站的MVC教程中,他們將商店等同於模型;這將是Backbonejs中的一個集合,同樣你還有一個Model(這只是商店中的一個商品,你可以從&上聽&觸發事件)。

看起來Backbonejs的抽象更細化。

所以我認爲可以互補使用。剛開始採用這種方法時,會在幾天內看到它是如何發展的。

(傳聞:我聽說過的地方,道場正在在MVC領域的一些發展情況與什麼Backbonejs提供相提並論......)

+1

,你要學會通過更新這個答案 –

+4

道場1.7請分享你的經驗是剛剛發佈昨天,現在他們包括一個[路由器!](https://github.com/csnover/dojo-boilerplate/blob/amd1.7/src/js/dbp/Router.js) 我一直在玩小部件創作,並且他們設計得非常好,具有用於組件間通信(事件,發佈/訂閱)的良好設施以及良好的關注分離。 – zenw0lf

+3

和Dojo 1。7你可以有事件代表團,backbonejs views'style:[dojo/on](http://livedocs.dojotoolkit.org/dojo/on) – zenw0lf