Javascript MVC架構之旅

來源:互聯網
上載者:User
文章目錄
  • Backbone.js
  • Ember.js
  • CanJS
  • AngularJS
  • Dojo
  • YUI
  • Spine
  • KnockoutJS
  • jQuery

本文摘自smashingmagazine的Journey Through The JavaScript MVC Jungle部分內容,因為個人對於架構的應用總結和特點比較感興趣,這裡翻譯了部分的內容,希望對於大家有協助,如果你覺得不過癮,請閱讀原文,謝謝!

什麼時候你需要使用Javascript的MVC架構?

如果你開發的程式可能需要和API或者服務通訊,而且要求大量的視圖操作或者資料操作,你將發現使用一個成熟的架構非常有協助。

典型的例子就是Gmail和Google Docs。

如果你的應用只是依賴於伺服器來產生web頁面和視圖,並且只需要使用一些簡單的javascript或者jQuery來使得應用更加的具有互動性,使用架構就不是很有必要。

選擇架構的標準

如果你需要選擇架構的話,你需要問問自己這些問題:

  • 這個架構究竟可以帶來什嗎?
  • 這個架構是不是有實際的成功案例?
  • 這個架構是不是成熟?
  • 這個架構是不是足夠靈活或者相對比較死板?
  • 你有沒有應用過相關的架構?
  • 這個架構是不是有很好的文檔支援?
  • 這個架構的大小,包括依賴的類庫,是不是很大?
  • 支援這個架構的社區是不是不錯?
如何選擇架構? 什麼時候該用什嗎?

為了更好的協助大家選擇架構,這裡我們做了一個high-level的總結,希望能夠協助大家選擇架構:

Backbone.js

如果你需要靈活的方式來解決應用中層次分離問題,並且支援持久層和REST同步服務,models,views,事件驅動,模板和定位等這個架構是個不錯的選擇。它允許model修改後View能夠自動更新。而且很多大的公司都使用它來構建應用,並且擁有非常好的社區來支援。

Ember.js

如果你需要案頭層級的應用開發,並且擁有模組化,標準的介面,並且支援MVC的特性,不需要我自己處理所有的東西。要求支援持久化,計算相關屬性並且自動更新模板。支援正確的狀態管理而非手動的控制管理。Ember.js是不錯的選擇,同時它擁有非常詳細的文檔,及其模板說明。並且擁有豐富的工具。

CanJS

輕量級的試試模板綁定,定向,整合主流類庫(jQuery或者Dojo)以最佳化效能。支援MVC。可能在大型的應用中使用不多,但是適合於有複雜應用開發經驗的人,針對這種情況,canjs是個不錯選擇。

AngularJS

如果你需要使用宣示的方法來定義View的行為。主要通過自訂的HTML標籤和組件來達到目的。支援快速測試,URL管理和分離的MVC。和其它的架構不一樣,它提供HTML編譯器來建立自己的HTML中的DSL。靈感來自於即將來到的web platform特性,例如web組件,同時也擁有自己的工具。如果想瞭解相關特性,請參考:AngularJS的五個超酷特性

Dojo

提供非常棒的基礎用來開發大型的應用。支援成熟的組件架構,模組支援lazy載入並且支援非同步,簡單整合CDNs,擁有廣泛的模組(圖形,圖表,Grid等等),支援國際化本地化。支援OOP,MVC並且支援建立單元來解決複雜的架構。

YUI

需要利用YUI的擴充架構。支援Model,view和router,簡化書寫多視圖的應用支援routing,視圖變化等等。 擁有完整的方案套件括組件/控制項及其相關工具,協助你建立一個有組織的應用架構。擁有底層工具(yuiproject)。

Spine

協助你簡單的實現非同步介面並且不需要任何依賴。可以非常固定但是對於建立應用比較靈活。家頭提供了必須要的骨架,例如,model,view,controller,事件和routing。但是仍舊比較小。針對CoffeeScript做了最佳化,擁有非常清楚的文檔。

KnockoutJS

可以方便的使用清楚的底層資料模型和宣告性綁定構建複雜動態UI 。Model變化後能夠自動更新UI,使用雙向的綁定,支援依賴來跟蹤model資料。可以使用任何你想使用的架構。或者一個已存在的應用。支援內建模板,並且很容易擴充。

jQuery

搭建簡答的網站和web應用。不需要很多代碼,並且組織代碼不是個問題。主要專註於瀏覽器的區別,我們專心於開發本身。很容易的綁定事件,和遠程服務互動,支援擴充,擁有大量的外掛程式。

希望這些簡單的內容對於你的架構選擇有所協助,如果你有問題,請給我們留言!

來源:Javascript MVC架構之旅

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.