2012-06-27 53 views
4

我聽到了很多的新聞與html5node.js工作時backbone.js將是非常有用的。我已閱讀文檔,但仍無法獲得backbone.js的基本用途。backbone.js的基本用途和好處是什麼?

是否有人可以解釋給我用簡單的術語。另外如果你能指導我做好教程。

感謝

編輯:看到這個問題What is the purpose of backbone.js?

+0

只想說,骨幹不真正關心的後端,可以使用骨幹任何東西在那裏,是一個使用REST沉綿expressjs + +的NodeJS骨幹是一種快樂 – skyw00lker

回答

11

幾乎每一個富客戶端的Web應用程序在那裏一些很好的教程有對象的一個​​或多個列表,當你做一些事情,這些對象的一個​​需要改變它是如何的顯示。想一想TODO列表,這是Backbone.js的典型例子。這裏有一些方法你可以做到這一點:

  • 當你做出改變,使用jQuery或類似的東西來改變HTML DIV本身的文本。但是當你想將它保存到服務器時呢?你是否讀過所有HTML div的文本,從而將數據作爲權威的地方?那只是感覺笨重!如果你有其他狀態,你不想顯示給用戶?或者如果你想在兩個不同的地方顯示同一個對象?

  • 當你做出改變,更新普通老式Javascript對象的地方,像window.todos = [{id:1, foo:'bar'},...]。但是當你改變它時,你必須重新渲染所有使用該對象的東西,並且告訴服務器有關這些變化。如果您有兩種或兩種以上不同的方式來更改狀態,例如我們的TODO應用程序的「標記全部已完成」功能,那麼您最終會重複自己很多!

Backbone.js的由用於保持該數據的權威版本每個TODO對象創建Backbone.Model解決了這個問題。無論何時您更改模型上的屬性,無論您將其更改爲何處,都會通知該對象的所有視圖重新渲染。您可以使用單個函數調用將整個模型集合同步到RESTful服務器。您的應用程序將更易於維護,您可以更輕鬆地添加任意功能。

+0

添加到我的回答兩年後..在上面提到的「重新渲染」中,Backbone.View從字面上拋出了DOM,用於偵聽剛剛更改的模型上的更改的任何組件,然後從模板中重新構建它。如果這看起來對任何人來說都沒有效率,我鼓勵你看看React,它通過添加一個額外的差異層來解決這個問題,該層只告訴瀏覽器對UI進行必要的最小改變。與Backbone.Model結合使用時效果很好! – btown

相關問題