迷你 MVVM 框架 avalonjs 1.3.6 發布

jopen 10年前發布 | 6K 次閱讀 avalonjs

本版本是一次重要的升級,考慮要介紹許多東西,也有許多東西對大家有用,也發到首頁上來了。

本來是沒有1.36的,先把基于靜態收集依賴的1.4設計出來后,發現改動太多,為了平緩升級起見,才減少了一部分新特性,做成1.36。因此是先有1.4,才有1.36。

本版本針對公司(去哪兒網,畢竟是帶薪在公司里搞這框架)的訪問瀏覽器的占有率,加大對國產瀏覽器的測試。涉及瀏覽器有QQ瀏覽器, 搜狗瀏覽器, 獵豹瀏覽器, 傲游瀏覽器,但沒有360瀏覽器,我們公司的同事還是很注意安全的。這么多瀏覽器,現在還差兩個case才能在獵豹瀏覽器上通過。原因是獵豹瀏覽器是雙核 的,框架一些內部判定分支不小心掉進坑里了。如往常一樣,對于正常的IE6-8,avalon是全部通過。

下面簡單羅列一下新特性與修復情況:
    ?【新特性】添加avalon.isFunction方法,不用多說,大家都知道怎么用,但在IE6-8與W3C下,它的實現是不一樣的。
    ?【新特性】添加data-duplex-focus輔助指令, 當ms-duplex位于文本域,密碼域,文本區上,添加了此指令,會自動獲取焦點,光標位于最后的文本后。詳見這里
    ?【新特性】ms-duplex-*添加數據轉換功能。詳見這里
    ?【優化】重構sanitize過濾器,詳見這里
    ?【優化】重構html綁定,將會導致內存泄漏的replaceNodes替換掉,這里
    ?【優化】重構if綁定,將會導致內存泄漏的msInDocument、ifSanctuary、 placehoder屬性移除掉,詳見這里
    ?【優化】重構repeat綁定,將會導致內存泄漏的startRepeat、 endRepeat、 parent、callbackElement屬性移除掉,原template屬性改成為一個字符串。詳見這里
    ?【優化】重構modelFactory,通過靜態分析收集監控屬性與計算屬性及函數間的依賴關系,$watch回調的存放數組與視圖刷新函數的存放數組合而為一,詳見下面commit 簡化計算屬性、 監控數組的訂閱數組 對函數內部的監控屬性進行依賴收集
    ?【優化】重構avalon.contains,IE6-8下,對游離于DOM樹外的文本節點,訪問其parentNode,有時會拋錯。詳見這里
    ?【優化】提高cacheExpr的緩存命中率,詳見這里
    ?【優化】重構IE6-8下設置元素透明度,待會兒講。
    ?【警告】重構avalon.Array.ensure的行為,通過返回值是數字還是undefined判定其是否已經添加新元素,詳見這里
    ?【警告】廢棄dettachVModels的配置項,詳見這里

總之,在DOM上是存在各種奇奇怪怪的屬性與方法,與它們打交道,正是我們前端寫碼的樂趣所在。掌握的細節越多,我們的選擇就越多,寫出的代碼就越優雅高效。

迷你MVVM框架在github的倉庫:https://github.com/RubyLouvre/avalon

官網地址:http://rubylouvre.github.io/mvvm/

avalon的新UI庫地址 OniUI, 多達36個UI,強大的換膚功能

avalon是一個功能強大,體積小巧的MVVM框架。它遵循“操作數據即操作DOM”的理念,讓你在代碼里基本見不到一點DOM操作代碼。DOM操作全部在綁定后,交給框架處理。相當后端有了ORM一樣,不用你手寫SQL,提高生產力!

迷你 MVVM 框架 avalonjs 1.3.6 發布

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!