支持ie8的mvvm框架比較?

regularjs avalonjs knockoutjs 三者有什麼優缺點

avalonjs變動太頻繁,

regularjs貌似活躍度不夠,而且沒有開源的配套組件庫,

knockoutjs比較久了,不怎麼活躍,而且似乎大家都不建議用 ?


別的框架如何不敢妄言,我聊聊regularjs吧。

其實這個標題是覺得有點可悲的,本來猶豫有點不想答.後來轉念一想,或許也是吸引用戶的一個途徑,所以...

迫於無奈要兼容垃圾瀏覽器的開發者們,都來試試regularjs吧,

它不僅支持IE8也支持IE6哦

之前也搶答過一個avalon的問題,avalon2 怎麼樣 在兼容ie7的前提下 是否是首選框架呢? - 鄭海波的回答,大家也可以參考一下。

基本情況

1. 網易大量使用,但外部用戶比如 @小翼 這樣的不多,但對外態度是友好並且饑渴的。

2. 有一些配套,比如 @趙雨森的 https://github.com/regular-ui ,單頁框架、devtools、loader、requirejs插件等常用的也都有。

3. 代碼中沒有黑科技,是樸實的實現原理,穩定性高,0.3.0版本到之後的版本都是前向兼容的 ,公共API基本從發到github後就沒有過變動。

4. 支持服務端渲染 GitHub - regularjs/spa-example: A comprehensive Example for creating Single page application with regular-state,virtual dom並不是支持服務端渲染的唯一選擇,而且不會出現任何react-id,或者把你的文本替換為span等意料外的行為。從選型上看,如果有資源,擼個regular-native也是理論上可行的。

5. 經歷過工程複雜度高的產品(比如考拉、雲課堂)和業務複雜度高的產品(網易有數-敏捷數據分析平台,基於redux,超過10W行業務代碼BI產品)的考驗

6. 組件化做的非常徹底。雖然ng2也走組件化了,但是regularjs是一種更加輕量的方案。

7. 雖然無法做到全職維護,但是在工作時間裡抽空維護regularjs是沒有問題的。

性能

目前每個feature版本會進行一次性能上的修補,算是跟上競品的節奏,具體就是更新/銷毀性能優異,創建性能中上吧(因為模板類的AST會產生較多的語法節點,這個在virtual dom類的實現中就會好一些,virtual dom類的實現的創建開銷永遠和實際節點規模是一致的)。具體我在這個回答里有說明 avalon2 怎麼樣 在兼容ie7的前提下 是否是首選框架呢? - 鄭海波的回答

[臟檢查+字元串模板]選型的regularjs算是在全民virtual dom風潮中的一股泥石流吧,我是覺得在並沒有顯著缺陷的情況下,在另一種實現思路下堅持下去,說不定有不同的發現。另外貼兩篇以前的博文,想表達的就是:Regularjs並不是閉門造車的產物,現在仍然在不斷的對比和完善中。

1. 前端模板技術面面觀

2. 前端框架Regularjs的設計與選型之路

最後,部門招人,有興趣的快私信我 [杭州] 網易數據科學中心 ...


推薦我廠波神出品的regularjs。

優雅的組件化設計,使用parser解析模板帶來的靈活的模板語法,外加臟檢查帶來的良好兼容性。哦,還有啊,壓縮後只有50多k。


regularjs,我說幾句吧。。

regularUI用著還行,不知道是不是你說的配套。它的實現是基於臟檢查。

在我的項目中會有這樣一種場景,一個大表格,裡面很多個下拉組件。麻煩的是數據改了,需要手動update。

這個要是avalon來實現,會容易些,畢竟它是get set的模式,但

1.UI組件要自己實現一套

2.似乎它不支持extend的方式,所以有些地方會很蛋疼。

相比之下,regularjs算可以的了,而且@鄭海波 回復issue比較神速。。有問題直接提issue


應該是avalon吧.

avalon也有自己的組件庫的.

而且基於第三方組件來封裝也並不麻煩.

介面也還算友好易用.

性能無疑是最強.


ko 能夠支持到ie6。也是最早的mvvm的ui類庫。作者提倡實用主義。 由於支持低版本 所以其值的獲取和變更都需要通過代理 (也就是函數方式)進行,獨特依賴收集過程。跟ng1一樣在大量綁定上存在性能問題 ,但也足夠滿足一般需求。作者也致力通過一些方式(task)等來提高性能。同樣也有組件開發方式,但無生命周期管理。 github上也有8k star。目前還在不斷更新。在國外還是被所知的。當年我廠還在使用.net mvc3的時候。ko作為默認腳本。也是那時候引入到我廠低瀏覽器支持的項目


明顯是avalon,可惜司徒正美大神把好好寫文檔的時間都用來在微博上憤世嫉俗了


對框架的需求和要求越高,變動越頻繁,為了引入更多的黑科技,反而,不活躍的不更新的可能永遠不活躍不更新了。這是我的經驗。


這個時代 放棄ie8 明顯是更好的選擇!

等你糾結完之後 突然發現大家都不再關心ie8 甚至是 PC

往前看就好


推薦閱讀:

Vue 2.0 為什麼選用 Flow 進行靜態代碼檢查而不是直接使用 TypeScript?
如果ECMAScript 2015+完全普及,原型鏈這種知識是否還有了解的必要?
webpack 只適合SPA嗎?
能否用通俗語言講一下web前端講的「切圖」到底是什麼意思?
js等語言的undefined值存在的意義是什麼?

TAG:前端開發 | JavaScript | MVVM |