为什么Qwik有可能成为JS框架的未来
女士们,先生们,我们要宣布的是,Qwik是镇上新的JS框架 。
这一切都源于开发者在制作网站时
- 用裸露的HTML构建的网站,并撒上JS,以便用户可以与之互动。
- JS在运行时生成HTML
- JS在服务器上生成HTML,然后在运行时对其进行补充。
- JS在服务器上生成所有的HTML,并进行部分润色
- 再回到原始的HTML,它是由JS生成的,有额外的JS用于交互性。
我忍不住了,所以这里什么都没有。
这不就是真正发生的事情吗?
什么是新的?
Qwik通过RESUMABILITY 带来了一个全新的渲染画面。
可恢复性
Resumability消除了许多现代框架的范式,如Angular、NextJS和NUXTJS。 这些框架使用了Hydration,帮助开发者以各种方式建立SSR(服务器端渲染)网络应用的互动。
水化的缺点
衡量网络应用性能的最佳工具之一是灯塔。每个优秀的开发者都沉迷于完美的灯塔得分
但是,对于使用水合或部分水合的框架,需要编写大量的JS来实现所有的交互。而更多的JS意味着性能上的妥协。这意味着获得完美的灯塔分数的需求被抛在了脑后。
更多的现金有更好的性能?


问题是,为什么开发人员如此痴迷于完美的分数,这只是为了它,还是它真的能带来什么?根据研究,你的应用程序的速度越快,预计你会得到更好的转换率。让我们看看这个由金融软件公司intuit的研究提供的视觉效果。
你看到转换率了吗?很明显,更少的加载时间和更好的性能会带来更多的钱。
用更少的JavaScript提供更多的功能?
当你在你的应用程序中加载一个页面时,它要经过以下管道
- 获取HTML
- 下载大量的JS
- 解析并执行JS
- 绑定监听器
而每次用户刷新页面时,主线程都会再次加载JS,用户又要经历等待游戏。
解决方法?
有一些框架使用水合,然后是使用部分水合的框架。Qwik没有水合作用。它是如何做到这一点的呢?你可以把它看成是一个即时互动的HTML。有了这一点,你就可以获得完美的灯塔分数。
引擎盖下
很高兴知道这个完美的分数,但这到底是怎么发生的呢? Qwik应用程序是完全序列化的。这意味着你所有的JS状态、监听器和关闭都以HTML字符串的形式存在于你的应用程序中。这使得即时重播 成为可能 ,从而实现可恢复性 。
Qwik的懒人加载
当你运行你的Qwik应用程序时,你将在你的网络检查中看到没有JS,但在点击一个事件时,你会看到你想执行的JS代码。那是什么意思?基本上,只要您的应用程序需要,它就会触发JS代码。
更好的体验?
我们看到Qwik有更好的性能,但它是否为用户提供了更好的体验?比方说,用户启动你的应用程序,它立即被加载,但没有任何JS。然后用户开始向下滚动,你的应用程序开始执行迷你JS文件,这是否很流畅?
结论
现在我们已经了解了Qwik提供了什么,它解决了什么问题,以及它是如何解决的。可以清楚地看到,它有潜力,而且前途无量。我们确实取得了较好的性能,但在用户体验方面也有一些眉目。Qwik期待着找到新的、更好的捆绑方法,使Resumability成为城里最好的男孩。你也可以玩一玩qwik。我希望这对你有点用处。在下一次会议上见。保重。