你是否應該使用一個Javascript MVC框架?
本文摘自 smashingmagazine 的 Journey Through The JavaScript MVC Jungle 部分內容,希望對大家有幫助,如果你覺得不過癮,可以閱讀原文。
什么時候需要使用 Javascript MVC 框架?
如果你開發的程序可能需要和 API 或者服務通訊,而且要求大量的視圖操作或者數據操作,你將發現使用一個成熟的框架非常有幫助。典型的例子就是 Gmail 和 Google Docs。
如果你的應用只是依賴于服務器來生成 web 頁面和視圖,并且只需要使用一些簡單的 JavaScript 或者 jQuery 來使得應用更加具有互動性,使用框架就不是很有必要。
選擇框架的標準
如果你需要選擇框架的話,你需要問問自己這些問題:
- 這個框架究竟可以帶來什么?
- 這個框架是不是有實際的成功案例?
- 這個框架是不是成熟?
- 這個框架是不是足夠靈活或者相對比較死板?
- 你有沒有應用過相關的框架?
- 這個框架是不是有很好的文檔支持?
- 這個框架的大小,包括依賴的類庫,是不是很大?
- 支持這個框架的社區是不是不錯?
如何選擇框架?什么時候該用什么?
為了更好的幫助大家選擇框架,這里我們做了一個總結,希望能夠幫助大家選擇框架:
1. Backbone.js
如果你需要靈活的方式來解決應用中層次分離問題,并且支持持久層和 REST 同步服務、models、views、事件驅動、模板和定位等,這個框架是個不錯的選擇。它允許 model 修改后 View 能夠自動更新。而且很多大型公司都使用它來構建應用,并且有非常好的社區提供支持。
2. Ember.js
如果你需要桌面級別的應用開發,并且擁有模塊化、標準的界面,并且支持 MVC 的特性,不需要我自己處理所有的東西,要求支持持久化、計算相關屬性并且自動更新模板,支持正確的狀態管理而非手動的控制管理,Ember.js 是不錯的選擇,同時它擁有非常詳細的文檔和模板說明,并且擁有豐富的工具。
3. CanJS
輕量級的框架,支持模板綁定、定向,整合主流類庫(jQuery 或者 Dojo)以優化性能,支持 MVC。可能在大型的應用中使用不多,但是適合于有復雜應用開發經驗的人,在這種情況下,canjs 是個不錯選擇。
4. AngularJS
支持快速測試、URL 管理和分離的 MVC。和其它的框架不一樣,AngularJS 提供了 HTML 編譯器來創建自己的 HTML 中的 DSL。
5. Dojo
為開發大型應用提供了非常棒的基礎。支持成熟的組件架構,模塊支持 lazy 加載并且支持異步,簡單整合 CDNs,擁有廣泛的模塊(圖形、圖表、Grid 等),支持國際化、本地化,支持 OOP、MVC,并且支持創建單元來解決復雜的架構。
6. YUI
支持 Model、View 和 Router,簡化多視圖應用的開發,支持 routing、視圖變化等。擁有完整的解決方案,包括組件、控件及相關工具,幫助你創建一個有組織的應用架構,擁有底層工具 yuiproject。
7. Spine
幫助你簡單的實現異步界面并且不需要任何依賴。對于創建比較靈活的應用,Spine 提供了必要的架構,例如 model、view、controller、事件和 routing。針對 CoffeeScript 做了優化,擁有非常清晰的文檔。
8. KnockoutJS
可以方便的使用底層數據模型構建復雜動態的 UI。使用雙向綁定,Model 變化后能夠自動更新 UI,支持依賴來跟蹤 model 數據,支持內建模板,并且很容易擴展。
9. jQuery
輕松搭建網站和 web 應用,不需要很多代碼。專注于瀏覽器的兼容,使開發者專心于開發本身,并且可以輕松綁定事件、與遠程服務互動,支持擴展,擁有大量的插件。