javascript:12種JavaScript MVC框架之比較

来源:http://www.cnblogs.com/dengyungao/archive/2017/09/07/7490125.html
-Advertisement-
Play Games

Gordon L. Hempton是西雅圖的一位黑客和設計師,他花費了幾個月的時間研究和比較了12種流行的JavaScript MVC框架,併在博客中總結了每種框架的優缺點,最終的結果是,Ember.js勝出。 此次比較針對的特性標準有四種,分別是: UI綁定(UI Bindings) 複合視圖(C ...


Gordon L. Hempton是西雅圖的一位黑客和設計師,他花費了幾個月的時間研究和比較了12種流行的JavaScript MVC框架,並在博客中總結了每種框架的優缺點,最終的結果是,Ember.js勝出。

此次比較針對的特性標準有四種,分別是:

  • UI綁定(UI Bindings)
  • 複合視圖(Composed Views)
  • Web表現層(Web Presentation Layer)
  • 與其他框架良好協作(Plays Nicely with Others)

對於各種JavaScript MVC框架,Gordon都總結了優缺點:

  1. Backbone.js——優點:強大的社區,強勁的勢頭;缺點:抽象較弱,很多功能亟待增加。
  2. SproutCore——優點:對綁定的支持,可靠的社區,大量特性;缺點:過度規範,難以和不需要的特性解耦。
  3. Sammy.js——優點:易於學習,更容易和現存的服務端應用程式整合;缺點:過於簡單,無法應用於大型應用程式中。
  4. Spine.js——優點:輕量級,文檔很完備;缺點:它的核心概念“spine”是非同步的用戶界面,這意味著理想狀況用戶界面永遠不會發生堵塞,而這個基礎有缺陷。
  5. Cappuccino——優點:大型深思熟慮後的框架,良好的社區,很棒的繼承模型;缺點:由iOS開發者創建,使用JavaScript模擬Objective-C。
  6. Knockout.js——優點:對綁定的支持,完備的文檔和教程;缺點:綁定語法拙劣,缺少統一的視圖組件層級關係。
  7. Javascript MVC——優點:可靠的社區;缺點:基於字元串的繼承模型很差,控制器與視圖關係過密而缺少綁定。
  8. GWT(Google Web Toolkit)——優點:全面的框架,良好的社區,可靠的基於Java的組件繼承模型;缺點:可能無法經受時間的考驗,另外,Java在客戶端上的抽象有些笨拙。
  9. Google Closure——優點:很好的基於組件的UI組合系統。缺點:缺少UI綁定支持。
  10. Ember.js——優點:很豐富的模板系統,擁有複合視圖和UI綁定;缺點:相對較新,文檔不夠完備。
  11. Angular.js——優點:對模板範圍和控制器設計有很好的考慮,擁有依賴註入系統,支持豐富的UI綁定語法。缺點:代碼的模塊性不強,視圖的模塊化也不夠。
  12. Batman.js——優點:代碼清晰,綁定、持久化的方法簡單;缺點:使用了單例控制器。

經過對以上各種Javascript MVC框架特性的比較,Gordon認為只有Ember.js能夠完全滿足他的要求,從而成為他最終選用的框架。

你是否也使用過某些JavaScript MVC框架呢?歡迎參與討論。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、pom xml 配置 2、 項目結構 兩個文件的內容 3、編譯項目,編譯後的目錄結構 classes 類路徑下context.text 的內容 ...
  • Python在數據科學盛行的今天,其易於閱讀和編寫的特點,越來越受編程者追捧。在IEEE發佈的2017年編程語言排行榜中,Python也高居首位。如果你有學Python的計劃,快來看看小編分享的Python教程。 ...
  • Python函數的定義的方法: ...
  • “智能家居”很早就出現在大家的視野中,但目前大部分還是停留在概念階段,如何讓智能家居真正的落地開花呢?我想人工智慧的出現必然會打破這種現狀。 作為一個開發者,你是不是還在糾結如何能夠用語音控制你的家居產品呢? 比如,用戶說:我回家了。 你可以幫他打開燈、打開空調。 ... ...
  • 在項目中用到了隨機數,使用了SecureRandom.getInstance("SHA1PRNG"),發現首次運行,時間極長。 當然,以上說的情況,是Linux環境。 在我本地運行並不慢,本地是Windows環境。 查了一些資料,可參考http://blog.csdn.net/xiaojsj111/ ...
  • 任務描述:實現登錄和退出 1.項目結構 2.源代碼 urls.py views.py index,html login.html regist.html models.py 3.運行測試 未登錄訪問: 登錄後訪問: 退出 ...
  • tensorflow利用anaconda在ubuntu下安裝方法及jupyter notebook運行目錄及遠程訪問配置 Ubuntu下安裝Anaconda 出現許可後可按Ctrl+C跳過,yes同意。 安裝完成後詢問是否加入path路徑,亦可自行修改文件內容 關閉命令台重開 可查看是否安裝成功 修 ...
  • pip install i http://pypi.douban.com/simple/ packagename pip install i http://pypi.tuna.tsinghua.edu.cn/simple packagename ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...