在之前的全球网站统计中,利用React构建的网站比例远大于Vue,而随着Vue的飞速发展,尤其是去年发布了Vue3后,越来越多的人开始使用了。
那么在这种情况下,用Vue构建的网站比例如何了呢?除了Vue和React,其它框架的占比如何?每个网站的性能又如何?
所有数据无法证明这些框架孰优孰劣,毕竟框架只是提供能力,所以比较结果仅供参考本文数据是用户在使用Chrome浏览器访问网页时自动上报并记录的,应该还比较有权威性
前言
Chrome所统计的网站性能指标主要来源于三个维度:
LCP[1](LargestContentfulPaint)
FID[2](FirstInputDelay)
CLS[3](CumulativeLayoutShift)
CoreWebVitals
这些也是在GoogleSearch中统计权重的重要指标
在Chrome的用户体验报告里主要统计到的前端开发框架有:Vue、React、AngularJS、Angular、Preact、Svelte、Next.js、Nuxt.js、SvelteKit...
各大框架性能如何?
结合这三个指标,综合数据如下:
移动端(综合)
PC端(综合)
这里有个有意思的点,Preact只有4kb左右,而React有32kb左右,都知道前者是后者的轻量级的替代方案,从图中数据可以看出,这两者性能差不多,甚至在PC端的图表数据上来看Preact还优于React
再把这三个指标拆开来看看各大框架的表现情况
FID
这个指标没什么好看的,所有的框架几乎都很完美
在业界流传着一句话:大型应用选React,小型应用选Vue
刚才看的都是统计的所有网站的数据,我们来看下网站排名前万的网站数据
LCP
CLS
看这两张图表,Vue构建的网站似乎性能都超过了React?
恰巧最近也看了Vue3的框架设计的书,真的是惊叹Vue框架设计的之处
资源大小
用户报告其实也统计了各个网站JS资源下载情况,这也是跟网站性能有所关联的,毕竟资源过大或多或少也会减慢页面的渲染速度,尤其是JS文件,需要下载再解析
JS下载大小
可以看到基本上每个框架构建的网站所需要下载的JS资源大小都达到了0kb甚至以上,毕竟SPA应用会一次性把所有的文件都下载下来,这都很正常
从图中看Svelte好像是最优的?这是意料之中的,毕竟跟每个框架的设计有关,Svelte选择了纯编译时(官方所说的无runtime),也就是最终编译成直接操作原生DOM的代码,那么所需要下载的JS资源肯定相较于其它框架是少一些的
又看到个有意思的点,想抛出一个疑问,Preact明明是React轻量替代方案,图中展现的数据来看,Preact确实最"重"的?这是为什么?
再来看一个跟框架本身无关的数据吧,那就是各大网站的图片下载量
SSRSSG
大家都知道SSR和SSG的出现就是为了解决SPA应用带来的一些性能问题,目的是为了使网站能更快的展现在用户面前,以此来提升网站的性能指标(本文所说的CoreWebVitals)
用户使用报告里同样也收集了使用了这些技术的网站的相关数据,一起来看一下
性能
数量
最吸引人眼球的就是SvelteKit了,它的数据指标似乎比其它的框架高出了将近一倍,不过可惜的是统计到的数据只有33个,相较于其它框架的数量差距太大了,留个悬念吧,不知道等它量级起来后,是否还能保持这样的性能
对于CLS、FID、LCP这三个指标来说,大家最关心的应该是LCP,毕竟这是最影响用户体验的指标,那么在使用和没使用服务端渲染框架的网站在LCP这项指标上的表现又如何呢?
发现了特别特别有意思的点:
Next.js的LCP指标远低于React
Nuxt.js的LCP指标远高于Vue
同样是服务端渲染框架为何差别这么大?
回到LCP指标本身,其目前并不会计算所有元素,因为这样会使这个指标变得非常复杂,它现在只