在瀏覽器中對於Dom的操做和普通的腳本的操做處於兩個不一樣的dll中,兩個dll的交互是比較耗時的,優化對Dom的操做能夠提升腳本的執行速度。前端
JS訪問DOM是很慢的,儘可能不要用JS來設置頁面 佈局瀏覽器
有些人在學習 ReactJS 或者 AngularJS 時,須要學習 key 、 shouldComponentUpdate 、$apply 、 $digest 等複雜概念。這些概念在 Binding.scala 中根本不存在。由於 Binding.scala 的 @dom 方法描述的是變量之間的關係。因此,Binding.scala 框架知道精確數據綁定關係,能夠自動檢測出須要更新的最小部分。
結論
本文比較了虛擬 DOM 、髒檢查和精確數據綁定三種渲染機制app
楊博,Binding.scala做者,簡稱楊
尤雨溪,Vue.js的做者,簡稱尤
賀師俊, 犀利的技術批評者,前端技術資深專家,簡稱賀
楊稱,用Binding.scala寫的程序所需代碼行數不到ReactJS的三分之一,甚至比以簡潔著稱的Vue.js還要短。
尤還以顏色,用Vue.js從新寫了一個135行的TodoMVC新版本,比Binding.scala還短。
楊隨後貼出了122行的Binding.scala版TodoMVC。
尤沒有跟進更短的版本,但他指出122行的Binding.scala版TodoMVC,要比Vue.js字符數多30%。
楊認爲Vue.js字符數少的代價是API更臃腫。Vue.js 90%的API,在Binding.scala用一個函數就能夠所有代替。
TodoMVC官方版 Vue.js • TodoMVC
TodoMVC官方版 Binding.scala • TodoMVC
135行的新版 Vue.js • TodoMVC
122行的新版 Binding.scala • TodoMVC
在前端技術大爆炸的今天,你們怎麼看待這場代碼PK呢框架