avalon最早發布於2012.09.15,當時還只是mass Framework的一個模塊,當時為了解決視圖與JS代碼的分耦,參考knockout開發出來。 它的依賴收集機制,視圖掃描,綁定的命名data-*都與knockout差不多。它總共900行。 當時的理論體現在我在注釋的這一段 ...
avalon是國內最強大的MVVM框架,沒有之一,雖然淘寶KISSY團隊也搞了兩個MVVM框架,但都無疾而終。其他的MVVM框架都沒幾個。也只有外國人與像我這樣閑的架構師才有時間鑽研這東西。我很早之前就預言,MVVM是前端的終極解決方案。我之前在盛大無線做盛大通行證就深有體會,一個業務邏輯對應十來個不同的界面,分層架構是必不可少的。因此雙向綁定作為解葯,結合很早就流行的MVC框架,衍生出MVVM這 ...
2014-09-09 16:14 14 7429 推薦指數:
avalon最早發布於2012.09.15,當時還只是mass Framework的一個模塊,當時為了解決視圖與JS代碼的分耦,參考knockout開發出來。 它的依賴收集機制,視圖掃描,綁定的命名data-*都與knockout差不多。它總共900行。 當時的理論體現在我在注釋的這一段 ...
avalon之所以能在頁面處理1W個綁定(angular對應的數字是2000),出於兩個重要設計——基於事件驅動的雙向綁定鏈及智能CG回收機制。 avalon的雙向綁定鏈是通過Object.defineProperties及VBScript,將要操作VM屬性變成一種訪問器屬性。訪問器屬性是一種 ...
本章節,主要是介紹avalon.config方法,通過它來制定一些更貼心的功能。 一般情況下,我們在使用ms-controller綁定時,需要添加一個ms-controller類名,目的是為了防止網速慢時將花括號暴露出來。 <!DOCTYPE html> <html> ...
avalon的過濾器是參考自angular與rivets。它也被稱做管道文本過濾器,它的處理對象只能是文本(字符串),它只能用在文本綁定中,並且只能是雙花括號形式。下面是各大家的過濾器比較: rivetsjs <span rv-text="event.startDate | date ...
avalon的雙向綁定機制,是通過一條依賴鏈實現。此依賴鏈最底層是監控屬性、監控數組,中層是計算屬性、監控函數,再上點是求值函數,最上層是視圖刷新函數。 所謂計算屬性,監控屬性,監控函數屬性,我們改變它們的值,它們會引發視圖變化;而監控數組,是我們調用它的一些方法,也會引發視圖變化 ...
ms-class是avalon用得最多的幾個綁定之一,也正因為如此其功能一直在擴充中。根據時期的不同,分為舊風格與新風格兩種。 舊風格是指ms-class-xxx=”expr”,*ms-class-aaa-bbb=”expr”*。正如第三節《綁定屬性與掃描機制》所講,一個綁定屬性分成三部 ...
一般情況下我們通過設置類名就可以改變元素的樣式,但涉及到動畫部分,就一定需要設置內聯樣式了,因此有了ms-css。*ms-css*的用法為ms-css-樣式名="樣式值", 如ms-css-width ...
avalon是通過ms-repeat實現對一組數據的批量輸出。這一組數據可以是一個數組,也可以是一個哈希(或叫對象)。我們先從數組說起吧。 第二節就說,凡是定義在VM中的數組,如果沒有以$開頭或者沒放在$skipArray數組里,都會轉會監控數組。監控數組其實就是一個被重寫了push ...