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