1. 程式人生 > >MVC框架(一)----前端框架分類

MVC框架(一)----前端框架分類

前端框架比較繁多,分了以下類主要有基於js的類庫框架(主要分為純類庫和包含設計模式的類庫)、UI框架、視覺化元件等。


想補充一點的樓主暫時知道WPF、angularJS和VUE.JS是用的MVVM,感覺MVVM很牛逼,其實一般,簡單可以理解為ASP.MVC裡面的強型別資料繫結(歡迎大神斧正)。

想單獨提出來的是有人會有這樣的疑問:asp.mvc和apring.mvc我可以理解,但是 angular.js是單獨的前端js框架也是mvvm,感覺有點扯吧?首先,這裡MVC和MVVM只是設計模式,跟前端和前後端一起的沒關係;其次,前端也可以有小前端後臺之分,比如後臺傳給了前臺(小後臺)資料,這個就類似

asp.MVC從資料庫裡獲取了資料,也會把資料傳到小前端的,這裡面就有MVVM的設計模式可做文章。

一、前端框架庫:

1.Zepto.js

描述:Zepto是一個輕量級的針對現代高階瀏覽器的JavaScript庫,它與jquery有著類似的api如果你會用jquery,那麼你也會用zepto。關於Zepto認知我也是通過與一位騰訊朋友聊天的時候知道的,只作了些基礎的瞭解。

2.SUI Mobile

描述:SUI Mobile是一套基於 Framework7開發的UI庫。它非常輕量、精美,只需要引入我們的CDN檔案就可以使用,並且能相容到 iOS 6.0+ Android 4.0+,非常適合開發跨平臺

Web App用途:你也看到了,他是用於無線端的Web App的開發。

3.Node.Js

描述:Node.js是一個Javascript執行環境(runtime)。實際上它是對Google V8引擎進行了封裝。V8擎執行Javascript的速度非常快,效能非常好。Node.js對一些特殊用例進行了優化,提供了替代的API,使得V8在非瀏覽器環境下執行得更好。Node.js是一個基於ChromeJavaScript執行時建立的平臺,用於方便地搭建響應速度快、易於擴充套件的網路應用。Node.js使用事件驅動,非阻塞I/O模型而得以輕量和高效,非常適合在分散式裝置上執行資料密集型的實時應用。

  簡單的說 Node.js就是執行在服務端的 JavaScript

Node.js是一個基於ChromeJavaScript執行時建立的一個平臺。

Node.js是一個事件驅動I/O服務端JavaScript環境,基於GoogleV8引擎,V8引擎執行Javascript的速度非常快,效能非常好。

用途:(1). RESTful API

  這是NodeJS最理想的應用場景,可以處理數萬條連線,本身沒有太多的邏輯,只需要請求API,組織資料進行返回即可。它本質上只是從某個資料庫中查詢一些值並將它們組成一個響應。由於響應是少量文字,入站請求也是少量的文字,因此流量不高,一臺機器甚至也可以處理最繁忙的公司的API需求。

(2).統一Web應用的UI

  目前MVC的架構,在某種意義上來說,Web開發有兩個UI層,一個是在瀏覽器裡面我們最終看到的,另一個在server端,負責生成和拼接頁面。

不討論這種架構是好是壞,但是有另外一種實踐,面向服務的架構,更好的做前後端的依賴分離。如果所有的關鍵業務邏輯都封裝成REST呼叫,就意味著在上層只需要考慮如何用這些REST介面構建具體的應用。那些後端程式設計師們根本不操心具體資料是如何從一個頁面傳遞到另一個頁面的,他們也不用管使用者資料更新是通過Ajax非同步獲取的還是通過重新整理頁面。

(3).大量Ajax請求的應用

例如個性化應用,每個使用者看到的頁面都不一樣,快取失效,需要在頁面載入的時候發起Ajax請求,NodeJS能響應大量的併發請求。  總而言之,NodeJS適合運用在高併發、I/O密集、少量業務邏輯的場景。

4.angular.Js

描述:AngularJS[1]誕生於2009年,由Misko Hevery等人建立,後為Google所收購。是一款優秀的前端JS框架,已經被用於Google的多款產品當中。AngularJS有著諸多特性,最為核心的是:MVVM、模組化、自動化雙向資料繫結、語義化標籤、依賴注入等等。用途:通過描述我們應該就能很好的明白AngularJS的真實用途了,MVVM,模組化,自動化雙向資料繫結等等。除了簡單的dom操作外,更能體現Js程式設計的強大。當然應用應該視場合而定。

5.JQuery Mobile

描述:Query MobilejQuery在手機上和平板裝置上的版本。jQuery Mobile不僅會給主流移動平臺帶來jQuery核心庫,而且會發佈一個完整統一的jQuery移動UI框架。支援全球主流的移動平臺。jQuery Mobile開發團隊說:能開發這個專案,我們非常興奮。移動Web太需要一個跨瀏覽器的框架,讓開發人員開發出真正的移動Web網站。用途:jQuery Mobile是建立移動 web應用程式的框架。jQuery Mobile 適用於所有流行的智慧手機和平板電腦。

jQuery Mobile使用 HTML5 CSS3 通過儘可能少的指令碼對頁面進行佈局。

6.requirejs

描述:RequireJS的目標是鼓勵程式碼的模組化,它使用了不同於傳統<script>標籤的指令碼載入步驟。可以用它來加速、優化程式碼,但其主要目的還是為了程式碼的模組化。它鼓勵在使用指令碼時以module ID替代URL地址。
RequireJS
以一個相對於baseUrl的地址來載入所有的程式碼。頁面頂層<script>標籤含有一個特殊的屬性data-mainrequire.js使用它來啟動指令碼載入過程,而baseUrl一般設定到與該屬性相一致的目錄。

用途:模組化動態載入。

7.Vue.js

描述:Vue.js是用於構建互動式的 Web介面的庫。它提供了 MVVM資料繫結和一個可組合的元件系統,具有簡單、靈活的 API。從技術上講, Vue.js集中在 MVVM 模式上的檢視模型層,並通過雙向資料繫結連線檢視和模型。實際的 DOM操作和輸出格式被抽象出來成指令和過濾器。相比其它的 MVVM框架,Vue.js更容易上手。

8.backbone.js

描述:Backbone為複雜Javascript應用程式提供模型(models)、集合(collections)、檢視(views)的結構。其中模型用於繫結鍵值資料和自定義事件;集合附有可列舉函式的豐富API檢視可以宣告事件處理函式,並通過RESTful JSON介面連線到應用程式。

9.React

描述:React是一個 Facebook Instagram用來建立使用者介面的 JavaScript庫。很多人認為 React MVC中的 V(檢視)。我們創造 React是為了解決一個問題:構建隨著時間資料不斷變化的大規模應用程式。為了達到這個目標,React採用下面兩個主要的思想。

10.Ionic

描述:Ionic既是一個CSS框架也是一個Javascript UI庫。許多元件需要Javascript才能產生神奇的效果,儘管通常元件不需要編碼,通過框架擴充套件可以很容易地使用,比如我們的AngularIonic擴充套件。
Ionic
遵循檢視控制模式,通俗的理解和 Cocoa觸控框架相似。在檢視控制模式中,我們將介面的不同部分分為子檢視或包含其他檢視的子檢視控制器。然後檢視控制器驅動內部檢視來提供互動和UI功能。一個很好的例子就是標籤欄(Tab Bar)檢視控制器處理點選標籤欄在一系列視覺化面板間切換。

瀏覽我們的API文件來了解檢視控制器和Ionic中可用的Javascript實用工具。

Ionic是目前最有潛力的一款 HTML5手機應用開發框架。通過 SASS構建應用程式,它提供了很多 UI元件來幫助開發者開發強大的應用。它使用 JavaScript MVVM框架和 AngularJS來增強應用。提供資料的雙向繫結,使用它成為 Web和移動開發者的共同選擇。

二、前端UI框架

1.Pure

描述:Pure精心設計,只為可以在任何Web專案中使用。為了例證這一點,我們製作瞭如下幾個模板。這些模板都是響應式的,並且沒有使用任何JavaScript用途:真的是很精美的一個樣式框架,便於我們快事構建一些個人產品,當然也可以服務於工作中的一些專案

2.bootstrap

描述:簡潔、直觀、強悍的前端開發框架,讓web開發更迅速、簡單。

3.EasyUI

描述:easyui是一種基於jQuery的使用者介面外掛集合。easyui為建立現代化,互動,JavaScript應用程式,提供必要的功能。

      使用easyui你不需要寫很多程式碼,你只需要通過編寫一些簡單HTML標記,就可以定義使用者介面。

easyui是個完美支援HTML5網頁的完整框架。

easyui節省您網頁開發的時間和規模。

easyui很簡單但功能強大的。

4.Ant Design

描述:一個 UI設計語言,一套提煉和應用於企業級後臺產品的互動語言和視覺體系

三、視覺化元件

1.Echarts

描述:ECharts,一個純 Javascript的圖表庫,可以流暢的執行在 PC和移動裝置上,相容當前絕大部分瀏覽器(IE8/9/10/11ChromeFirefoxSafari等),底層依賴輕量級的 Canvas 類庫ZRender,提供直觀,生動,可互動,可高度個性化定製的資料視覺化圖表。

2.tableau(收費)

描述:Tableau是桌面系統中最簡單的商業智慧工具軟體,Tableau沒有強迫使用者編寫自定義程式碼,新的控制檯也可完全自定義配置。在控制檯上,不僅能夠監測資訊,而且還提供完整的分析能力。Tableau控制檯靈活,具有高度的動態性。

四、前端構建工具

1.gulp

描述:易於使用      通過程式碼優於配置的策略,Gulp讓簡單的任務簡單,複雜的任務可管理。      構建快速

      利用 Node.js流的威力,你可以快速構建專案並減少頻繁的 IO操作。

      外掛高質

Gulp嚴格的外掛指南確保外掛如你期望的那樣簡潔高質得工作。      易於學習

      通過最少的 API,掌握 Gulp毫不費力,構建工作盡在掌握:如同一系列流管道。