Riot.js:不足1KB的MVP客戶端框架
Riot.js是一款MVP(模型-檢視-呈現)開源客戶端框架,其最大的特點就是體積非常小,不足1KB,雖然體積小,但它可以幫助使用者構建大規模的Web應用程式。
Riot.js是由Moot公司開發,目前最新版本為v0.9.2,遵循MIT開源許可。
Riot.js包含的元件有:一件模板引擎、路由、事件庫和一個嚴格的MVP模型,可以把所有的元件組織在一起。和其他框架相比,它速度更快、體積更小、功能更加強大。
下面我們一起來看下Riot.js的幾大特徵。
最小
下面是目前幾個比較流行的客戶端JS框架,Riot.js是所有這些框架裡體積最小的:
Riot.js之所以如此輕量,它主要注重於構建和維護應用的核心因素,目前,它主要依賴於jQuery,但在即將釋出的v1.0中會有一個獨立的版本,並且可以在Node.js上執行。
應用程式程式碼更少
下面是各個框架構建Todo MVC應用程式的程式碼量:
Raw amount of minified JS and HTML in Todo MVC
程式碼量的多少要取決於很多因素,比如編碼風格等,所以這並不是一個非常重要的指標。
最快
Riot.js配備了一個非常快速的JavaScript模板引擎,它的速度幾乎是Resig“微模板”或Underscore模板的5倍。
Running a variable substitution x amount of times.
MVP設計模式
Riot.js使用Model-View-Presenter (MVP)設計模式來組織程式碼,這樣它能夠更加模組化、更具可測試性且易於理解。
就像MVC(Model View Controller)或MVVM(Model View ViewModel)設計模式,目的都是把應用程式的邏輯從檢視中分離出來,但MVP更簡單,讓我們與MVC比較下:
MVC設計模式更加複雜,許多箭頭圍稱一個圈。控制器角色不明確,該模式可以有很多種解釋方式。事實上,這是導致該模式下有太多客戶端框架的根本原因。
相反,MVP則沒有太多的解釋空間,每個角色定位都很清楚,它可以應用在各種大小的專案上,並且也是單元測試的最佳模式。
相關資料
Riot.js官網:https://moot.it/riotjs
託管地址:https://github.com/moot/riotjs
詳細介紹:https://moot.it/blog/technology/riotjs-the-1kb-mvp-framework.html
相關文章
- JavaScript 客戶端框架—AureliaJavaScript客戶端框架
- HTTP客戶端框架之RetrofitHTTP客戶端框架
- 極簡的Restful框架推薦->Resty(服務端+客戶端)REST框架服務端客戶端
- Android開源mvp專案,實現玩Android客戶端AndroidMVP客戶端
- flask框架圖書管理系統客戶端Flask框架客戶端
- Vue教程00:MVC、MVP、MVVM模式的區別,服務端渲染與客戶端渲染的區別VueMVCMVPMVVM模式服務端客戶端
- validation客戶端驗證框架使用手冊客戶端框架
- 《samba搭建win客戶端和linux客戶端的區別》Samba客戶端Linux
- dubbo客戶端客戶端
- Pulsar客戶端客戶端
- mqtt 客戶端MQQT客戶端
- MQTTJava客戶端的使用MQQTJava客戶端
- redis客戶端的使用Redis客戶端
- IE客戶客戶端程式開發的利器Bindows客戶端
- 客戶端,服務端客戶端服務端
- 服務端,客戶端服務端客戶端
- Nacos - 客戶端心跳續約及客戶端總結客戶端
- TCP/UDP簡易通訊框架原始碼,支援輕鬆管理多個TCP服務端(客戶端)、UDP客戶端TCPUDP框架原始碼服務端客戶端
- 物理DataGuard客戶端無縫切換--客戶端TAF 配置客戶端
- [Redis 客戶端整合] Java 中常用Redis客戶端比較Redis客戶端Java
- 基於MVP+RxJava2+Retrofit+Dagger2+MD的仿B站Android客戶端MVPRxJavaAndroid客戶端
- Elasticsearch的PHP客戶端操作ElasticsearchPHP客戶端
- Python socket的客戶端Python客戶端
- zookeeper的Java客戶端APIJava客戶端API
- Ceph的客戶端安裝客戶端
- 解析RocketMQ的client客戶端MQclient客戶端
- 客戶端加解密客戶端解密
- Zookeeper 客戶端 API客戶端API
- java websocket 客戶端JavaWeb客戶端
- 客戶端筆記客戶端筆記
- Redis-客戶端Redis客戶端
- redis客戶端管理Redis客戶端
- CXF--客戶端客戶端
- 中斷客戶端客戶端
- github客戶端使用Github客戶端
- ftp客戶端,ftp客戶端軟體具體怎麼使用?FTP客戶端
- 編寫 Netty / RPC 客戶端【框架程式碼分析】NettyRPC客戶端框架
- MVP框架的演化MVP框架