最近在用avalon作項目,使用的感覺是,它確實會比angualr學習成本更低,我不須要花不少時間去了解它的功能,沒有指令、沒有服務,花一個晚上看看API就差很少能着手用了。avalon的視圖它提供了更多的功能,不少細節上的處理,好比說數據類型轉換,它都幫咱們處理好了,好比ms-duplex-number。avalon它在升級過程當中還在吸取着別的庫的一些東西,這是好事,可是,也會有一些東西讓我很想吐槽,拿綁定回調舉例:數組
- data-repeat-rendered ,用ms-repeat綁定,當監控數組發生添加,刪除,重排等操做時觸發; 參數:當前操做名("add","del","index","clear","move")
- data-with-sorted ,用ms-repeat, ms-with綁定,趕對象渲染以前觸發,要求輸出一個字符串數組,對象的鍵值對會根據它依次輸出; 參數:原對象的全部鍵名構成的數組
- data-with-rendered ,用ms-with綁定,當目標對象輸出頁面後觸發; 參數:當前操做名("add","del","index","clear","move")
- data-each-rendered ,用ms-each綁定,當監控數組發生添加,刪除,重排等操做時觸發; 參數:當前操做名("add","del","index","clear","move")
repeat、with、each都有各自渲染後觸發的回調,可是渲染前的回調,repeat與with確是共用了data-with-sorted...框架
avalon大多數的功能在avalon.define({})中均可以完成了,可是當一個頁面交互過多的時候,我開始煩惱代碼組織的問題,太多的屬性和方法混在一塊兒,須要給它們劃分模塊,而angular不太須要考慮這些問題,指令、服務、依賴,它都幫咱們分好了,咱們在使用angular的時候,必須按照它規定的方式書寫代碼,angular它有更好的擴展體驗,從代碼結構上,也應該是使用angular會更清晰一點。我老是有這麼一種感受,使用avalon的時候,個人思惟模式仍是在按照傳統的DOM操做方式在思考。學習
還有API的問題,雖然有,可是不夠完整與清晰,所以在使用過程當中會蠻痛苦的。spa
最後,關於流行度與社區力量,這是我最開始學習MV*框架時不選avalon選擇angular的緣由。angular有谷歌支持,且有很是強大的社區力量。對象
既然如此,爲何仍是用avalon呢?一切都是源於需求!!若是你問我對這兩個庫印象最深的東西是什麼,angular我會說指令和服務,avalon我會說兼容性。angular1.3對IE的支持是從IE9開始的,對於如今還要求六、七、8的公司而言,在前臺項目使用angualr就是奢望。最重要的另外一個緣由,也是源於需求,我接手了一個作了一半的avalon項目O(∩_∩)O,雖然是後臺項目,不一樣模塊,總不能這個用avalon,那個用angular吧,交接的時候絕對的會被罵成狗~~字符串