API而不借助現(xiàn)有的前端框架來(lái)進(jìn)行開(kāi)發(fā)?
VSCode直接使用DOM API而不使用前端框架,原因有以下幾點(diǎn):
VSCode從2011年開(kāi)始開(kāi)發(fā),當(dāng)時(shí)各種前端框架并不像今天這么流行,微軟在選取技術(shù)時(shí)很難考慮當(dāng)時(shí)還未成熟和推廣的前端框架。前端框架性能較差。現(xiàn)代前端框架本質(zhì)上是用虛擬DOM (React)、臟檢測(cè) (Angular)和數(shù)據(jù)劫持 (Vue)等手段將數(shù)據(jù)的變化自動(dòng)響應(yīng)到 DOM 變化上。對(duì)于絕大多數(shù)前端應(yīng)用而言,前端框架從數(shù)據(jù)到UI的這一套處理方法是沒(méi)有性能問(wèn)題的,其保證的是性能不會(huì)太慢和自動(dòng)響應(yīng),這很契合普通前端應(yīng)用的開(kāi)發(fā)需求。但是對(duì)于 VSCode 這種應(yīng)用就不適用了。代碼編輯器對(duì)性能的要求很高,可以說(shuō)其性能要求是各種前端應(yīng)用中最高級(jí)別的。目前的前端框架難以滿足VSCode的性能需求。微軟具備強(qiáng)大的開(kāi)發(fā)團(tuán)隊(duì),所以直接使用DOM api開(kāi)發(fā)并不是太高的技術(shù)門檻,開(kāi)發(fā)成本不會(huì)太高,且進(jìn)行進(jìn)一步優(yōu)化的空間更大,也不會(huì)受制于某個(gè)框架的發(fā)展。代碼編輯器設(shè)計(jì)的前端技術(shù)更為底層,增量變化、等寬字體的排列和渲染等問(wèn)題,使用現(xiàn)有的前端框架難以抽象,往往還是需要使用底層API進(jìn)行定制開(kāi)發(fā),前端框架在這些部分能力不足。綜上所述,VSCode使用DOM api開(kāi)發(fā)是微軟團(tuán)隊(duì)的正確選擇,前端框架不是開(kāi)發(fā)VSCode的最佳選擇。