Avalon前端 MVVM 框架
avalon 是一個(gè)功能強(qiáng)大,體積小巧的 MVVM 框架。它遵循“操作數(shù)據(jù)即操作DOM”的理念,讓你在代碼里基本見(jiàn)不到一點(diǎn)DOM操作代碼。DOM操作全部在綁定后,交給框架處理。相當(dāng)后端有了ORM一樣,不用你手寫SQL,提高生產(chǎn)力!
與其它js框架相比,同樣實(shí)現(xiàn)著名的todos功能,(參見(jiàn)todomvc官網(wǎng)),在所有MV*的實(shí)現(xiàn)中avalon是讓用戶寫代碼最少的。
與其他MV*相比,它不僅輕量,最低支持到IE6,而且性能是最好的。
優(yōu)勢(shì):
-
使用簡(jiǎn)單,在HTML中添加綁定,在JS中用avalon.define定義ViewModel,再調(diào)用avalon.scan方法,它就能動(dòng)了!
-
兼容到IE6(其他mvvm框架, knockoutjs IE6, angularjs IE7, emberjs IE8, winJS IE9 )
-
沒(méi)有任何依賴,只有72K,壓縮后22K
-
支持管道符風(fēng)格的過(guò)濾函數(shù),方便格式化輸出
-
局部刷新的顆粒度已細(xì)化到一個(gè)文本節(jié)點(diǎn),特性節(jié)點(diǎn)
-
要操作的節(jié)點(diǎn),在第一次掃描就與視圖刷新函數(shù)相綁定,并緩存起來(lái),因此沒(méi)有選擇器出場(chǎng)的余地。
-
讓DOM操作的代碼近乎絕跡
-
使用類似CSS的重疊覆蓋機(jī)制,讓各個(gè)ViewModel分區(qū)交替地渲染頁(yè)面
-
節(jié)點(diǎn)移除時(shí),智能卸載對(duì)應(yīng)的視圖刷新函數(shù),節(jié)約內(nèi)存
-
操作數(shù)據(jù)即操作DOM,對(duì)ViewModel的操作都會(huì)同步到View與Model去。
與其他框架比較:
-
它體積更少,在主要的幾個(gè)MVVM框架(擁有雙向綁定機(jī)制),knockout是三千多行,angularjs 1.6萬(wàn), emberjs2-3萬(wàn)行, winjs是幾M, kendoui是幾M!
-
兼容情況,kendoui與 knockoutjs IE6, angularjs IE7, emberjs IE8, winJS IE9
-
讓用戶寫代碼更少(可見(jiàn)我給出的todos)
-
上手難度,與knockout差不多,但借鑒了angularjs的,更為易用。
-
與knockoutjs, angular, winjs一樣是使用動(dòng)態(tài)模板,至少保持第一屏數(shù)據(jù)是真實(shí)的,對(duì)SEO友好。
-
源碼也是它們中最易讀的。簡(jiǎn)單的代碼也意味著擴(kuò)展調(diào)試等容易。
