大家好,我是Kason。多年来,前端框架一直在螺旋式发展。具体来说,很多主流的前端框架采用的技术其实很早就发明了。例如,在10年的时间里,Knockout开创了细粒度更新。新框架的出现一般遵循:新思想+现有技术的结合近两年,最流行的思想是Svelte带来的重新编译的概念。这也让他成为StackOverflow21年开发者报告中最受欢迎的框架。然而,开源世界和工业世界可能会出现两种情况:开发者说“哦,这个框架不错”,但是在写项目的时候,本体却很老老实实的选择了React。这也不能怪开发商。毕竟,生态是前端框架最重要的部分。本文想谈的是一个很可能制约Svelte生态发展的因素。从VUE说起,VUE3在技术选型的时候,有一个考虑点:是否去掉虚拟DOM,而虚拟DOM在拥抱重编译时的作用是找到交互引起的UI变化部分。但是,VUE3采用细粒度更新。理论上只要粒度够细,根本不需要虚拟DOM。通常,依赖于虚拟DOM的框架,虚拟DOM会占据一半以上的运行时工作量(如React,VUE)。如果能够去除虚拟DOM,可以带来以下好处:封装后的框架代码体积减小,运行时交互导致UI更新过程更短。不过VUE3最终还是保留了虚拟DOM。一个重要的原因是虚拟DOM可以弥补。模板语言的局限性虚拟DOM的优势比如当你需要在VUE中实现布局组件时:
