Vue.js是一個MVVM(Model-View-ViewModel)框架,使用響應式的數據綁定和組合視圖組件構建用戶界面。近期,Vue.js推出了最新版本的2.5.17源碼,這個版本修復了一些問題并改進了一些功能。下面我們就來看看Vue.js 2.5.17的源碼吧。
首先,我們看到Vue.js 2.5.17源碼中對computed(計算屬性)做了一些更新。在之前的版本中,計算屬性不支持傳入resolver以延遲求值。而在2.5.17中,我們現在可以通過在getter和setter中使用injections參數實現延遲求值。
function createComputedGetter(key) { return function computedGetter() { const watcher = this._computedWatchers && this._computedWatchers[key]; if (watcher) { if (watcher.dirty) { watcher.evaluate(); } if (Dep.target) { watcher.depend(); } return watcher.value; } } }
此外,Vue.js 2.5.17源碼還更新了對于元素節點類型的判斷方法,在之前的版本中只判斷是否為1(Element),而現在還增加了對2(Attr)和3(Text)的判斷,修復了在IE下使用innerHTML時出現的問題。
if (node.nodeType === 1 /* ELEMENT */) { processElement(node, options); } else if (node.nodeType === 3 /* TEXT */) { processText(node); } else if (node.nodeType === 2 /* ATTRIBUTE */) { processAttr(node, options); }
Vue.js 2.5.17源碼還更新了在異步更新隊列中的$nextTick方法,現在可以傳入一個回調函數作為參數。這個回調函數會在更新隊列被清空之后執行,在Vue實例中使用$nextTick方法時非常有用。
Vue.prototype.$nextTick = function(fn) { return nextTick(fn, this); };
通過這些更新和改進,Vue.js 2.5.17源碼得以更加完善和穩定。然而,在使用Vue.js時還是需要注意版本的匹配,在項目中升級Vue.js版本之前,一定要考慮好兼容性和穩定性問題。
上一篇gson獲取json
下一篇vue input 禁用