大家好,我是Kason。近年来,前端领域出现了很多新的框架,如Svelte、Solid.js、Astro、Qwik等,与之相伴的还有很多高阶的新概念——runtime/compile-timeframework,Islandsarchitecture,SelectiveHydration...这些概念的本质是通过各种方法让页面更快。这里的速度主要包括两个方面:让HTML加载更快(很多和SSR相关的概念都和这个有关,比如Islands架构)和响应交互更快(很多使用细粒度更新的框架都和这个有关)这个,比如Vue,Solid.js)但是,快是不是评价Web未来发展方向的唯一标准呢?一位拥有32年开发经验的资深程序员在他的博文get-in-zoomer-we-re-saving-react中提出了不同的观点。本文是对博文的部分解读。欢迎加入人类优质前端框架群,应用重要的是什么?前面说了,前端框架的新特性就是通过各种方式让页面变快。这里的主题是页面,而不是应用程序。事实上,虽然开发者经常谈论WebApps,但大多数开发者开发的东西只能称为页面。页面和应用程序之间的一个很大的区别是交互体验的不同。如果一个页面中的某些交互类似于IOS原生应用,我们会说这个页面交互很棒。因此,虽然速度是交互体验的重要组成部分,但绝不是全部,还有很多细节值得考虑。以业界用户体验标杆MacOS为例:在MacOS中,打开应用程序状态栏时,按住command+option等快捷键可以启用高级功能:undo的结果(command+z)操作用于各种操作目标符合预期(无论目标是文本还是文件等)富文本内容的复制和粘贴与富文本内容通过拖动的表现一致.做过富文本编辑器的同学应该能感受到以上功能的难易程度。这些预期细节的背后是一个响应系统。响应式系统MacOSX是第一个声称响应式的操作系统。在此之前,业界的仿真对象是Windows操作系统。在Windows中,数据是无响应的。除非开发人员手动刷新或轮询更新,否则获取的数据不会自动更新。这种底层模式会对上层应用的运行产生直观的影响。例如,下面是Windows95中更改桌面外观的配置项,用户更改配置后,只有点击确定或应用后才能看到更改后的配置效果。这种情况有点类似于前端框架普及之前开发者手动操作DOM的情况。与Windows相比,MacOSX采用了响应式更新,MacOS中的很多配置项更改后,用户可以立即看到效果。这种情况类似于开发者使用前端框架后,状态变化可以自动触发视图更新。操作系统的演进是前端框架发展的参考。背后的故事前文提到,MacOSX的发展方向是打磨各种细节以获得更好的用户体验,而前端框架的发展方向则更快。前端框架歪了吗?React的并发特性应该是今年前端领域的一个热门话题。但是,从社区关于并发特性的文章来看,更多的是关于并发特性的科普和解释其影响的文章,而不是使用并发特性并从中受益。从这个角度看,并发这个特性似是而非的流行。如果从更广的角度考虑用户体验,React是否可以有其他的发展方向?例如,当前连续事件(ContinuousEvents,指持续触发的事件,如鼠标事件、滚动事件)的频率和速度通常比React的重新渲染速度快,这很可能造成不良用户经验。通常的解决方案是使用ref。换句话说,降级为手动操作DOM。这里有很大的优化空间吗?除了React,其他框架是否也能从这个角度考虑发展方向?你觉得前端框架的发展方向是不是走错了?
