精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MVC框架PK:Angular、Backbone、CanJS與Ember

開發 前端 后端
選擇JavaScript MVC框架很難。一方面要考慮的因素非常多,另一方面這種框架也非常多,而要從中選擇一個合適的,還真得費一番心思。想知道有哪些JavaScript MVC框架可以選擇?看看TodoMVC吧。

我用過其中4個框架:Angular、 Backbone、 CanJS和 Ember。因此,可以對它們作一比較,供大家參考。本文會涉及框架選型過程中需要考慮的一系列因素,我們逐一討論。

每一個因素我們都會按照1到5分來打分,1分代表很差,5分代表很好。我會盡量保持客觀,但也不敢保證真能“一碗水端平”,畢竟這些分數都是根據我個人經驗給出的。

功能

作為構建應用的基礎,框架必須具備一些重要的功能。比如,視圖綁定、雙向綁定、篩選、可計算屬性(computed property)、臟屬性(dirty attribute)、表單驗證,等等。還能羅列出一大堆來。下面比較了一些我認為MVC框架中比較重要的功能:

功能 Angular Backbone CanJS Ember
可觀察對象(observable)
路由(routing)
視圖綁定(view binding)  
雙向綁定(two way binding) - -
部分視圖(partial view) -
篩選列表視圖(filtered list view) -
  • 可觀察對象:可以被監聽是否發生變化的對象。
  • 路由:把變化通過瀏覽器URL的參數反映出來,并監聽這些變化以便執行相應的操作。
  • 視圖綁定:在視圖中使用可觀察對象,讓視圖隨著可觀察對象的變化而自動刷新。
  • 雙向綁定:讓視圖也能把變化(如表單輸入)自動推送到可觀察對象。
  • 部分視圖:包含其他視圖的視圖。
  • 篩選列表視圖:用于顯示根據某些條件篩選出來的對象的視圖。

得分

根據上述功能,我打出的分數如下:

Angular Backbone CanJS Ember
5 2 4 5

有一點必須指出,使用Backbone也能實現上述大多數功能,只是手工編碼量挺大的,有時候還要借助插件。這里的打分只考慮了框架核心是否支持某一功能。

靈活性

有時候,框架配合一些現成的插件和庫來使用,可能要比使用框架原生同類功能效果更好,而這種插件和庫幾乎遍地都是(不下數百個),又各有特色。因此,能夠把這些庫和插件整合到MVC框架中也非常重要。

Backbone是其中最靈活的一個框架,因為它的約定和主張最少。使用Backbone需要你自己作出很多決定。

CanJS的靈活性與Backbone差不多,把它跟別的庫整合起來很容易。在CanJS中甚至可以更換其他渲染引擎,我在CanJS中就一直用Rivets,沒有任何問題。不過,我還是推薦框架自帶的組件。

Ember和Angular也都還算靈活,可有時候你會發現,就算不喜歡它們的某些實現方法,你也只能默默忍受。 這是在選擇Ember或Angular時必須考慮的。

得分

Angular Backbone CanJS Ember
3 5 4 3

上手難度

Angular

Angular一開始會讓人大呼過癮,因為可以利用它干好多意想不到的事,比如雙向綁定,而且學習難度不高。乍一看讓人覺得很簡單??墒?,進了門之后,你會發現后面的路還很長。應該說這個框架比較復雜,而且有不少標新立異之處。想看著它的文檔上手并不現實,因為Angular制造的概念很多,而文檔中的例子又很少。

Backbone

Backbone的基本概念非常容易理解。但很快你會發現它對怎么更好地組織代碼并沒有太多主張。為此,你得觀摩或閱讀一些教程,才能知道在Backbone中怎么編碼最好。而且,你會發現在有了Backbone的基礎上,還得再找一個庫(比如Marionette或Thorax)跟它配合才能得心應手。正因為如此,我不認為Backbone是個容易上手的框架。

CanJS

CanJS相對而言是這里面最容易上手的??纯此挥幸豁摰木W站(http://canjs.com/),基本上就知道怎么做效率最高了。當然,還得找其他一些資料看,不過我個人很少有這種需求(比如看其他教程、上論壇或討論組提問呀什么的)。

Ember

Ember的上手難度與Angular有一拼,我認為學習Ember比學習Angular總體上容易一些,但它要求你一開始就要先搞懂一批基本概念。而Angular呢,一開始不需要這么費勁也能做一些讓人興奮不已的事兒。Ember缺少這種前期興奮點。

得分

Angular Backbone CanJS Ember
2 4 5 3

開發效率

比較全面地掌握了一個框架之后,重點就轉移到了產出上。什么意思呢?約定啊、戲法啊,反正要盡可能快。

Angular

熟悉Angular之后,你的效率會非常高,這一點毋庸置疑。之所以我沒給它打最高分,主要因為我覺得Ember的開發效率似乎更勝一籌。

Backbone

Backbone要求你寫很多樣板(boilerplate )代碼,而我認為這完全沒必要。要我說,這是直接影響效率的一個因素。

CanJS

CanJS的開發效率屬于不快不慢的那種。不過,考慮到學習難度很低,因此適合早投入早產出的項目。

Ember

Ember的開發效率首屈一指。它有很多強制性約束,可以幫你自動完成的事很多。而開發人員要做的,就是學習和應用這些約定,Ember會替你處理到位。

得分

Angular Backbone CanJS Ember
4 2 4 5

#p#

    社區支持

能輕易找到參考資料和專家幫忙嗎?

Backbone的社區很大,這是人所共知的事實。關于Backbone的教程也幾乎汗牛充棟,StackOverflow和IRC社區非常熱鬧。

Angular和Ember社區也相當大,教程什么的同樣不少,StackOverflow和IRC也很熱鬧,但還是比不上Backbone。

CanJS社區呢,相對小一些,好在社區成員比較活躍,樂于助人。我倒沒發現CanJS社區規模小有什么負面影響。

得分

Angular Backbone CanJS Ember
4 5 3 4

生態系統

有沒有插件或庫構成的生態系統?

說起插件和庫,Backbone的選擇是最多的,可用插件俯拾皆是,這一點讓其他框架都望塵莫及。Angular的生態圈加上Angular UI還是很令人矚目的。我覺得Ember的下游生態雖然欠發達,但Ember本身很受歡迎, 所以前景十分樂觀。CanJS的下游支脈比較少見。

得分

Angular Backbone CanJS Ember
4 5 2 4

文件大小

這個因素有時候很重要,特別是對于移動開發項目。

自身大?。o依賴,未壓縮)

Angular Backbone CanJS Ember
80KB 18KB 33KB 141KB

Backbone最小,這一點也是最為人們所津津樂道的。但不能只看庫本身的體積。

包含依賴的大小

80KB的Angular是唯一不需要其他庫就能使用的。其他三個框架則都對其他庫有依賴。

Backbone至少需要Underscore和Zepto。雖然在Underscore中可以使用最小的模板來渲染視圖,但多數情況下,還要借助更好的模板引擎,比如Mustache。這樣它就增肥到了61KB。

CanJS至少需要Zepto,因此會達到57KB。

Ember需要jQuery和Handlebars,總共是269KB。

Angular Backbone CanJS Ember
80KB 61KB 57KB 269KB

得分

Angular Backbone CanJS Ember
4 5 5 2

性能

我不認為性能是選擇框架的關鍵因素,因為這些框架在預期應用領域中的性能都不差。當然啦,具體還得看你做什么項目。要是想開發游戲,那性能是個重要因素。

雖然我見過,也親自做過一些性能對比(比如這個測試),但我并不完全相信測試結果。很難說這種測試的方法和結果與實際項目吻合。

不過,據我所見所聞,CanJS的性能是最高的,而且在視圖綁定上格外突出。相對來說,我覺得Angular性能稍差,因為它執行對象的臟檢查(dirty checking),這一點就拖了它的后腿了。參見這里。

得分

Angular Backbone CanJS Ember
3 4 5 4

成熟度

這個框架成熟嗎,經過實際檢驗了嗎,有多少網站在用它呢?

使用Backbone的網站不計其數。最近兩年,它的核心代碼沒怎么改過,這是成熟的一個重要標志。

Ember已經不是新框架了,但它的重大變更還是經常有,前幾月剛剛穩定下來。因此,目前還不能說它是個成熟的框架。

Angular似乎比Ember更穩定,驗證的示例也更多,但不能與Backbone相提并論。

CanJS好像還未經任何驗證,因為不知道有什么網站在使用它。不過,CanJS其實也沒有看起來那么弱不經風,它可是從JavaScriptMVC精簡來的。JavaScriptMVC是2008年就出現的一個庫,因此會有很多智慧結晶留傳下來。

得分

Angular Backbone CanJS Ember
4 5 4 3

內存泄漏隱患

如果你想開發每次打開都得運行很長時間的單頁應用,這是必須得考慮的問題。你當然不希望自己的應用導致內存泄漏,這個問題非?,F實。不幸的是,內存泄露很容易發生,而自己編寫的DOM事件監聽器則是重災區。

只要你守規矩,Angular、CanJS和Ember能把這個問題幫你解決好。Backbone則不然,它需要你自己手工來卸載。

得分

Angular Backbone CanJS Ember
5 3 5 5

個人偏好

這恐怕是選擇框架時最重要的一個因素了。

  • 你喜歡聲明式HTML嗎?-> Angular
  • 你喜歡使用模板引擎嗎?-> Backbone、CanJS或Ember
  • 你喜歡固執已見的框架嗎?-> Ember
  • 你希望框架與最初的SmallTalk MVC模式完全吻合嗎?-> 沒有完全吻合的,或許CanJS最接近
  • 你希望使用目前看來很酷的框架嗎?-> Ember、Angular

本項沒辦法打分。

算總分

好啦,把各框架所得分數做個匯總吧。別忘了這只是我個人看法,如果你覺得哪一項打分有失偏頗,請務必告訴我。

(此處只是一個靜態圖表,單擊可以打開)

如果每一個因素的權重都一樣,那么這幾個框架確實難分高下。因此,我覺得最終決定很大程度上還是取決于你的個人偏好,或者必須要給每個因素賦予不同的權重才行。

聊聊Backbone(公平到此為止?。?/h2>

我在這篇文章里始終盡量做到“一碗水端平”??墒牵詈筢槍ackbone我還想再多說兩句,因為這些話如鯁在喉,不吐實在不快。

Backbone在兩年前是一個不錯的庫,但我知道:今天已經有了更好的選擇了。我也知道,很多人選擇Backbone其實僅僅因為使用它的人多,這是個惡性循環。

Backbone為追求靈活性而拋棄了開發的便利性。但我覺得它實在太過了,功能嚴重缺乏,導致開發效率很低。沒錯,有一大堆插件可以實現這樣那樣的功能,可這樣一來你不僅要學習Backbone,還得不斷學習怎么使用那些插件。

Backbone的大型社區和生態系統也很誘人,但隨著其他框架越來越受歡迎,這個優勢也將慢慢消失。

正因為如此,我強烈建議大家選擇Backbone時要三思而后行。

原文鏈接:http://www.admin10000.com/document/1922.html

 

責任編輯:陳四芳 來源: ituring
相關推薦

2012-02-09 16:09:17

JavaScript

2013-03-21 13:56:21

JavaScriptBackBone

2013-12-24 15:56:20

2012-08-06 10:34:26

JavaScript框架

2016-11-14 15:51:42

JavaScriptAngular.jsReact.js

2024-04-09 16:19:16

2015-02-09 10:43:00

JavaScript

2021-03-26 09:00:00

開發框架React

2014-10-29 14:52:13

程序員

2013-12-25 09:53:22

Ember.js應用

2009-03-13 10:58:48

ASP.NetMVC框架編程

2016-08-29 19:12:52

JavascriptBackbone前端

2013-09-10 14:01:40

WebEmber.jsAngular.js

2013-10-16 10:11:35

JavaScript項目框架

2013-12-24 11:11:27

ember.jsJavascript

2014-03-13 11:22:00

JavaScriptJS框架

2009-07-20 15:51:40

FubuMVC核心框架ASP.NET MVC

2015-12-18 10:14:08

Angular框架時代

2022-04-29 09:33:58

PHP框架Laravel

2024-12-27 10:20:54

點贊
收藏

51CTO技術棧公眾號

国产精品白丝av| 久久av资源| 亚洲h动漫在线| 久久av一区二区三区亚洲| 亚洲av无码精品一区二区| 四虎国产精品免费观看| 精品国产自在久精品国产| 精品久久一二三| 伊人免费在线| 成人精品视频网站| 国产精品美女久久久久av超清| 国精品无码一区二区三区| 窝窝社区一区二区| 欧美一区二区三区在线| 成人观看免费完整观看| 91小视频xxxx网站在线| 国产午夜精品一区二区三区嫩草| 91久热免费在线视频| 国产精品免费精品一区| 欧美成人午夜| 中文字幕亚洲第一| 国产精品一区二区入口九绯色| 91精品国产一区二区在线观看| 天天亚洲美女在线视频| 午夜啪啪福利视频| av网站在线免费播放| 91污在线观看| 都市激情久久久久久久久久久| 中文字幕有码视频| 久久九九电影| 2019中文在线观看| 久久久久亚洲AV| 亚洲成人99| 中文字幕国产亚洲2019| 久久人人爽人人爽人人片| 高清欧美性猛交xxxx黑人猛| 欧美一区二区三区男人的天堂| 免费激情视频在线观看| 日韩伦理福利| 午夜精品久久久久久久久久| 色哟哟免费网站| 黄色网在线免费观看| 中文字幕不卡的av| 日韩精品一区二区三区色偷偷 | 欧美日韩国产综合一区二区三区| 久在线观看视频| 成人影音在线| 亚洲一区日韩精品中文字幕| 在线视频一二三区| а√天堂在线官网| 亚洲欧美一区二区久久| 中国人体摄影一区二区三区| 在线看av的网址| 欧美国产精品一区| 亚洲精品第一区二区三区| 国产一级网站视频在线| 久久久夜色精品亚洲| 久久综合婷婷综合| 深夜福利在线看| 久久亚区不卡日本| 免费在线观看91| 裸体xxxx视频在线| 国产欧美日韩在线| 一本一本久久a久久精品综合妖精| 国产福利小视频在线| 中文字幕高清不卡| 中文字幕欧美日韩一区二区三区| 在线视频91p| 亚洲视频1区2区| 欧美极品少妇无套实战| sm性调教片在线观看| 狠狠久久亚洲欧美专区| 欧美激情精品久久久久久小说| 日韩一区二区三区免费视频| 欧美日韩精品一区二区三区| 天天操天天干天天做| 日韩三级不卡| 日韩国产一区三区| 美国美女黄色片| 亚洲综合色站| 98视频在线噜噜噜国产| 看黄色一级大片| 国产在线日韩欧美| 国产在线精品二区| 超碰97在线免费观看| 亚洲视频在线观看三级| 免费毛片网站在线观看| 亚洲性猛交富婆| 肉肉av福利一精品导航| 成人国产在线激情| 色屁屁草草影院ccyycom| 久久久久久久久久看片| 97超碰免费观看| 黄视频网站在线观看| 欧美午夜宅男影院| 美女日批在线观看| 国产伦精品一区二区三区视频| 色一区av在线| 好吊操这里只有精品| 日韩av一二三| 国产精品国产三级欧美二区| 高清日韩av电影| 一区二区三区不卡视频| 久久精品99国产| 少妇精品在线| 一区二区三区视频在线| 久久久久久久久久99| 日韩在线观看一区二区| 亚洲xxx大片| 国产一二在线观看| 亚洲成人一区二区| 天天操狠狠操夜夜操| 久久精品亚洲成在人线av网址| 中文字幕一区日韩电影| 日本一级黄色录像| 国内精品免费**视频| 久久亚洲一区二区| 羞羞电影在线观看www| 91成人看片片| 日b视频在线观看| 欧美在线国产| 国产精品偷伦免费视频观看的| 人妻精品一区一区三区蜜桃91| 国产精品三级在线观看| 免费欧美一级视频| 亚洲一级大片| 久久成人免费视频| 影音先锋黄色网址| 久久精品亚洲乱码伦伦中文| 成人一区二区免费视频| 麻豆精品久久| 日韩色av导航| 中文字幕观看在线| 国产欧美一区二区精品性色| 毛片在线视频播放| 一区中文字幕电影| 九九热精品视频国产| 91片黄在线观看喷潮| 欧美极品另类videosde| 国产淫片免费看| 老司机精品视频在线播放| 欧美xxxx做受欧美.88| 国产一区二区小视频| 国产香蕉久久精品综合网| 免费黄色特级片| 久久av导航| 日韩美女在线观看| 久久久久久青草| 色域天天综合网| 成人乱码一区二区三区av| 蜜桃久久av| 日本午夜精品一区二区| 欧美日韩视频免费观看| 国产一区二区三区高清在线观看| 中文字幕精品无码一区二区| 久久久久久亚洲综合影院红桃| 97成人在线观看视频| 综合伊思人在钱三区| 日本午夜精品理论片a级appf发布| 三区在线视频| 欧美亚洲日本国产| 四虎地址8848| 国产精品一二三区| 久久精品xxx| 婷婷五月色综合香五月| 欧美一级片在线播放| 国内精品在线视频| 欧美日韩亚洲综合| 国产成人久久久久| 99视频国产精品| 免费激情视频在线观看| 欧美黄色录像片| 亚洲影院污污.| 97人澡人人添人人爽欧美| 精品夜色国产国偷在线| 欧美特级黄色片| 国产精品久久久久影院| 麻豆传媒在线看| 国产亚洲毛片| 亚洲欧洲久久| 丁香一区二区| 国产精品va在线播放我和闺蜜| 黄网站app在线观看| 欧美tk—视频vk| 国产精品va无码一区二区三区| 国产精品人成在线观看免费| 日本黄色一级网站| 国产精品久久久久毛片大屁完整版| 色噜噜色狠狠狠狠狠综合色一| 国产不卡精品| 69久久夜色精品国产69乱青草| www亚洲人| 日韩三级在线观看| 在线永久看片免费的视频| 亚洲精品五月天| 三上悠亚ssⅰn939无码播放 | 四虎在线观看| 欧美日韩国产a| 91久久国产视频| 中文字幕在线不卡一区二区三区| 香港三日本8a三级少妇三级99| 日韩黄色免费网站| 91免费黄视频| 国产精品久久天天影视| 国产亚洲情侣一区二区无| 日本午夜精品久久久久| 国产91av在线| 欧美人与性动交α欧美精品济南到| 亚洲精品视频在线播放| 成人h动漫精品一区二区无码| 色偷偷久久一区二区三区| 欧美日韩亚洲国产另类| 日本一区二区三区视频视频| 亚洲av无码一区二区三区观看| 国产一二精品视频| 午夜在线观看av| 国产婷婷精品| 丁香六月激情婷婷| 亚洲国产日韩欧美在线| 视频一区视频二区视频三区视频四区国产 | 精品视频在线看| 男人天堂2024| 欧美日韩裸体免费视频| 免费一级肉体全黄毛片| 国产精品美女视频| 亚洲精品午夜视频| 99久久国产综合精品色伊| 黑人巨大猛交丰满少妇| 国模无码大尺度一区二区三区| 久久人妻精品白浆国产| 亚洲女人av| 成年人午夜视频在线观看| 午夜日韩av| av电影一区二区三区| 日韩免费一区| 亚洲精品日韩精品| 欧美影院三区| 水蜜桃一区二区三区| 九九热线有精品视频99| 久久国产欧美精品| 久久97久久97精品免视看秋霞| 国产精品swag| 超碰成人在线观看| 国产98在线|日韩| 中文字幕一区日韩精品| 风间由美一区二区三区| 9l视频自拍蝌蚪9l视频成人| 91原创国产| 91成人午夜| 国产一区二区三区色淫影院| 精品久久对白| 蜜桃传媒视频麻豆一区 | 天天干天天干天天干天天| 婷婷开心激情综合| a v视频在线观看| 精品福利在线观看| 美日韩一二三区| 色视频一区二区| 中文字幕人成人乱码亚洲电影| 欧美日韩小视频| 国产精品无码免费播放| 欧美一级日韩免费不卡| www五月婷婷| 亚洲国产欧美日韩精品| 嫩草精品影院| 色香阁99久久精品久久久| caoporn免费在线| 欧美激情a∨在线视频播放| 91制片在线观看| 日韩女在线观看| 欧美一级做a| 不卡日韩av| 蜜桃一区二区三区| 亚洲日本精品一区| 欧美破处大片在线视频| 女人天堂av手机在线| 日本美女一区二区三区视频| 91视频这里只有精品| 丰满少妇久久久久久久| av直播在线观看| 国产精品久久久久久久久图文区| 日韩在线观看视频一区二区| 亚洲一二三区在线观看| 无码人妻黑人中文字幕| 欧美精品久久久久久久多人混战| 亚洲av无码国产综合专区| 国产丝袜高跟一区| 国产1区在线| 欧美亚洲日本黄色| 9999精品| 日韩 欧美一区二区三区| 日韩中文一区二区三区| 亚洲大全视频| 欧美aⅴ在线观看| 国产剧情一区二区| 泷泽萝拉在线播放| 亚洲欧美日韩电影| 天堂网中文字幕| 欧美成人乱码一区二区三区| 黄色av网站在线免费观看| 久久福利视频导航| 亚洲黄色网址| 亚洲va欧美va国产综合久久| 亚洲动漫精品| 国产爆乳无码一区二区麻豆| 日韩国产在线观看一区| 国产成人av片| 国产精品素人视频| 午夜毛片在线观看| 日韩精品一区二区三区在线观看 | 色播一区二区| 色一情一区二区三区四区 | 亚洲视频图片小说| 成人毛片一区二区三区| 欧美精品一区视频| 二区三区四区高清视频在线观看| 国产成人精品久久亚洲高清不卡| 4438全国亚洲精品观看视频| 在线观看福利一区| 国产毛片久久| 国产一卡二卡三卡四卡| 亚洲精品成a人| 一级特黄aa大片| 最近2019年日本中文免费字幕| 天堂√中文最新版在线| 国产精品夜夜夜一区二区三区尤| 91精品综合| 亚洲18在线看污www麻豆| 国产欧美综合色| 亚洲av中文无码乱人伦在线视色| 欧美不卡一区二区三区| av网站大全在线| 5566av亚洲| 91精品综合| 免费人成视频在线播放| 一色屋精品亚洲香蕉网站| 中文亚洲av片在线观看| 一本色道久久88综合日韩精品| 一个人看的www视频在线免费观看| 国产日韩亚洲精品| 影音先锋亚洲精品| 女性生殖扒开酷刑vk| 亚洲五月六月丁香激情| 亚洲精品久久久久久无码色欲四季| 欧美xxxx18性欧美| 亚洲国产中文在线| 精品成在人线av无码免费看| 高潮精品一区videoshd| 国产一级大片在线观看| 精品国产三级a在线观看| 超碰在线资源| 国产精品一区二区三区在线观| 精品动漫一区| 国产肉体xxxx裸体784大胆| 欧美性猛xxx| 国内三级在线观看| 国产女人精品视频| 中文字幕亚洲精品乱码| 久久国产免费视频| 亚洲成a天堂v人片| 欧美xxx.com| 国产精品一区专区欧美日韩| 国产精品7m凸凹视频分类| 波多野结衣在线免费观看| 亚洲一区在线观看视频| 亚洲av成人精品毛片| 国产成人综合久久| 午夜激情久久| 少妇献身老头系列| 福利二区91精品bt7086| 川上优的av在线一区二区| 成人性生交xxxxx网站| 精品91在线| 丰满少妇高潮一区二区| 欧美日韩国产大片| heyzo在线欧美播放| 日本成人三级电影网站| 久久99精品久久只有精品| 欧美日韩亚洲国产另类| 亚洲精选在线观看| 中文字幕综合| 日韩精品 欧美| 中文字幕久久午夜不卡| 亚洲精品久久久久avwww潮水| 欧亚精品在线观看| 香蕉av一区二区| 在线观看av中文字幕| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 亚洲精品一线| 日韩资源av在线| 国产白丝网站精品污在线入口| 亚洲伊人成人网| 操日韩av在线电影| 日韩有码一区| 伊人免费视频二| 欧美日韩中文字幕综合视频| 嫩草香蕉在线91一二三区| 国产综合欧美在线看| 精品一区二区三区视频 | 欧美wwww|