backbone,英文意思是:勇氣, 脊骨,但是在程式裡面,尤其是在backbone後面加上尾碼js之後,它就變成了一個架構,一個js庫。
backbone.js,不知道作者是以什麼樣的目的來對其命名的,可能是希望這個庫會成為web端開發中脊樑骨。
好了,八卦完了開始正題。
backbone.js提供了一套web開發的架構,通過Models進行key-value綁定及custom事件處理,通過Collections提供一套豐富的API用於枚舉功能,通過Views來進行事件處理及與現有的Application通過RESTful JSON介面進行互動.它是基於jquery和underscore的一個js架構。
整體上來說,backbone.js是一個web端javascript的mvc架構,算得上是重量級的架構。它能讓你像寫java代碼一些寫js代碼,定義類,類的屬性以及方法。更重要的是它能夠優雅的把原本無邏輯的javascript代碼進行組織,並且提供資料和邏輯相互分離的方法,減少代碼開發過程中的資料和邏輯混亂。
通過backbone,你可以把你的資料當作Models,通過Models你可以建立資料,進行資料驗證,銷毀或者儲存到伺服器上。當介面上的操作引起model中屬性的變化時,model會觸發change的事件;那些用來顯示model狀態的views會接受到model觸發change的訊息,進而發出對應的響應,並且重新渲染新的資料到介面。在一個完整的backbone應用中,你不需要寫那些膠水代碼來從DOM中通過特殊的id來擷取節點,或者手工的更新HTML頁面,因為在model發生變化時,views會很簡單的進行自我更新。
上面是一個簡單的介紹,關於backbone我看完他的介紹和簡單的教程之後,第一印象是它為前端開發制定了一套自己的規則,在這個規則下,我們可以像使用django組織python代碼一樣的組織js代碼,它很優雅,能夠使前端和server的互動變得簡單。
在查backbone資料的時候,發現沒有很系統的中文入門資料和更多的執行個體,所以我打算自己邊學邊寫,爭取能讓大家通過一系列文章能快速的用上backbone.js。
關於backbone的更多介紹參看這個:
http://documentcloud.github.com/backbone/
http://backbonetutorials.com/
backbone的應用範圍:
它既然是一個重量級的架構,那就不是隨便什麼地方都能用的,不然就會出現殺雞用牛刀,費力不討好的結果。那麼適用在哪些地方呢?
根據我的理解,以及backbone的功能,如果單個網頁上有非常複雜的商務邏輯,那麼用它很合適,它可以很容易的操作dom和組織js代碼。
豆瓣的阿爾法城是一個極好的例子。
當然,除了我自己分析的應用範圍之外,在backbone的文檔上看到了很多使用它的外國網站,有很多,說明backbone還是很易用的。
本文連結: http://www.the5fire.net/touch-backbone-js.html