Vue.js是一套用于構建用戶界面的漸進式JavaScript框架,軟件加強了TypeScript的支持,加強API設計一致性,同時提高自身的可維護性,開放了更多底層功能,易于上手,還便于與第三方庫或既有項目整合,能夠幫您大大提升工作效率。
Vue.js開發背景
2013年末,作者還在Google Creative Lab工作。當時在項目中使用了一段時間的Angular,在感嘆數據綁定帶來生產力提升的同時,也感到Angular的API設計過于繁瑣,使得學習曲線頗為陡峭。出于對Angular數據綁定原理的好奇,作者開始 “造輪子”,自己實現了一個非常粗糙的、基于依賴收集的數據綁定庫。這就是Vue.js的前身。同時在實際開發中,作者發現用戶界面完全可以用嵌套的組件樹來描述,而一個組件恰恰可以對應MVVM中的ViewModel。于是作者決定將我的數據綁定實驗改進成一個真正的開源項目,其核心思想便是 “數據驅動的組件系統”。
Vue.js特色
1、易用
在有HTML,CSS,JavaScript的基礎上,快速上手。
Vue.js 的 API 是參考了AngularJS、KnockoutJS、Ractive.js、Rivets.js。
Vue.js 的 API 的對于其他框架的參考不僅是參考,其中也包含了許多 Vue.js 的獨特功能。
2、靈活
簡單小巧的核心,漸進式技術棧,足以應付任何規模的應用。
3、性能
20kb min+gzip 運行大小、超快虛擬 DOM 、最省心的優化。
Vue.js新特性
1、壓縮包體積更小
當前最小化并被壓縮的 Vue 運行時大小約為 20kB(2.6.10 版為 22.8kB)。Vue 3.0捆綁包的大小大約會減少一半,即只有10kB!
2、Object.defineProperty -》 Proxy
Object.defineProperty是一個相對比較昂貴的操作,因為它直接操作對象的屬性,顆粒度比較小。將它替換為es6的Proxy,在目標對象之上架了一層攔截,代理的是對象而不是對象的屬性。這樣可以將原本對對象屬性的操作變為對整個對象的操作,顆粒度變大。
javascript引擎在解析的時候希望對象的結構越穩定越好,如果對象一直在變,可優化性降低,proxy不需要對原始對象做太多操作。
3、Virtual DOM 重構
vdom的本質是一個抽象層,用javascript描述界面渲染成什么樣子。react用jsx,沒辦法檢測出可以優化的動態代碼,所以做時間分片,vue中足夠快的話可以不用時間分片。
傳統vdom的性能瓶頸:
雖然 Vue 能夠保證觸發更新的組件最小化,但在單個組件內部依然需要遍歷該組件的整個 vdom 樹。
傳統 vdom 的性能跟模版大小正相關,跟動態節點的數量無關。在一些組件整個模版內只有少量動態節點的情況下,這些遍歷都是性能的浪費。
JSX 和手寫的 render function 是完全動態的,過度的靈活性導致運行時可以用于優化的信息不足
上一篇:PyCharm2021漢化補丁
下一篇:Apsaly多功能編程