迷你MVVM框架 avalonjs 1.3.7發佈

又到每月的15號了,如今avalon已經固定在每月的15號發佈新版本。此次發佈又帶來許多新特性,讓你們寫碼更加輕鬆,藉助於「操做數據即操做DOM」的核心理念與雙向綁定機制,如今愈來愈多人加入到avalon的陣營中來。此外,基於avalon的UI庫OniUI也愈來愈強大,很快,樹組件也開發完畢,下星期也與你們見面了。到時,OniUI也有兩個Grid組件,一個樹組件的完整UI庫。與本次發佈的UI還有驗證組件,mask組件,百葉窗切換組件……javascript

UI庫的廣告就到時爲止,咱們看一下新版本帶來的新特性與FIX BUG狀況吧。php

  • 【新特徵】ms-duplex綁定全面升級,脫胎換骨,如avalon.duplexHooks鉤子對象,pipe內部方法。詳看這裏的例子
  • 【新特徵】添加data-include-replace輔助指令 詳見這裏
  • 【新特徵】data-duplex-changed支持第二個參數data詳見這裏
  • 【新特徵】VM的$fire通訊機制變成這個樣式, all!xxx是不依賴於DOM樹向周邊VM發出通知; up!xxx與down!xxx是依賴於DOM向上方或向下方的VM發出通知,咱們能夠return false停止廣播; 普通的xxx只能觸發當前的VM的$watch回調。
  • 【新特徵】添加avalon.scanCallback,容許在某次掃描後觸發這些回調。詳見這裏這裏的例子
    
        avalon.scanCallback = function(fn, group) {
            group = group || "$all"
            var array = scanObject[group] || (scanObject[group] = [])
            array.push(fn)
        }
        avalon.scan = function(elem, vmodel, group) {
            elem = elem || root
            group = group || "$all"
            //.....略
        }
       
  • 【優化】修正 $fire在跨模塊通訊時沒法通知widget組件的BUG(添加了createSinalTower內部方法)
  • 【優化】更改innerRequire內部方法的位置,及設置爲空函數,方便用戶移除「AMD加載器模塊」後也能正常使用
  • 【優化】精簡IE6-8下input事件的模擬
  • 【優化】精簡 newSetter的邏輯詳見這裏
  • 【優化】fix HTMLInputElement.prototype.value 的重寫
  • 【優化】重構notifySubscribers
  • 【優化】fix getEachProxy BUG 詳見這裏
  • 【優化】支持生成更多SVG元素
  • 【優化】爲對付firefox插件下嚴格的語法檢測,使用全新的獲取全局變量window的方法
  • 【優化】修正 ms-src不能加載SWF BUG詳見這裏
  • 【優化】修正ms-duplex 綁定VM某個子VM的屬性,input值修改後沒有同步到vm.$model的BUG 詳見這裏
  • 【優化】修正avalon.mix方法拷貝VBScript對象時拋錯的BUG 詳見這裏
  • 【優化】修正IE6下由於for in循環致使isPlainObject不許的BUG 詳見這裏
  • 【優化】將ms-if去掉的元素都移動head標籤的avalon標籤下詳見這裏
  • 【優化】讓date過濾器能像chrome那樣支持更多日期格式詳見這裏

本次升級主打的是ms-duplex 2.0,你們能夠到這裏一窺其強大!ms-duplex2.0相對於舊的ms-duplex只能將element.value簡單地同步到VM中,它添加了自動轉換類型的功能(核心庫),光標引導(avalon.mask),數據格式化(參看avalon.mask的第三個例子,將用戶輸入內容自動插入千分符),驗證機制(avalon.validation)。html

第二大新特性就添加了avalon.scanCallback這新方法,容許用戶在掃描後進行操做。有了這東西,什麼data-include-rendered, data-repeat-rendered, data-with-rendered就沒有存在的必要了。之後它們內部所有用avalon.scanCallback實現。java

從1.3.3起,我就着手開發靜態收集依賴機制,以此爲契機,發現許多要改良的地方,所有放到一個叫avalon.$events.js的版本上。但通過幾個月的研究,發現靜態收集依賴,是對壓縮不友好的,像angular那樣須要引入許多奇異的方式來規避這問題。所以我最終放棄這東西,之後改用其餘方式提升性能。將來將着力升級三柱臣與avalon.observe.js。git

三柱臣,動畫mmAnimate,數據請求mmRequest,路由器mmRouter,如今就mmRequest最成熟,而mmRouter的需求則強烈,mmAnimate極需升級。它們三個都依賴了mmPromise,那是原生的Promise的一個包裝,性能超好。github

在chrome36 beta中,就已經存在element.animate這個方法,即引進了著名的web-animation。chrome39將進一步完善。新的mmAnimate也將基於它進行開發。web

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

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


朋友們用avalon作的東西框架

相關文章
相關標籤/搜索