VSCode直接使用DOM API而不使用前端框架,原因有以下几点:
VSCode从2011年开始开发,当时各种前端框架并不像今天这么流行,微软在选取技术时很难考虑当时还未成熟和推广的前端框架。前端框架性能较差。现代前端框架本质上是用虚拟DOM (React)、脏检测 (Angular)和数据劫持 (Vue)等手段将数据的变化自动响应到 DOM 变化上。对于绝大多数前端应用而言,前端框架从数据到UI的这一套处理方法是没有性能问题的,其保证的是性能不会太慢和自动响应,这很契合普通前端应用的开发需求。但是对于 VSCode 这种应用就不适用了。代码编辑器对性能的要求很高,可以说其性能要求是各种前端应用中最高级别的。目前的前端框架难以满足VSCode的性能需求。微软具备强大的开发团队,所以直接使用DOM api开发并不是太高的技术门槛,开发成本不会太高,且进行进一步优化的空间更大,也不会受制于某个框架的发展。代码编辑器设计的前端技术更为底层,增量变化、等宽字体的排列和渲染等问题,使用现有的前端框架难以抽象,往往还是需要使用底层API进行定制开发,前端框架在这些部分能力不足。综上所述,VSCode使用DOM api开发是微软团队的正确选择,前端框架不是开发VSCode的最佳选择。