Basecamp发布网页前端开发框架

Hotwire是一个构建现代网页应用程序的替代方案,不需要使用大量的JavaScript,通过发送HTML(HTML-Over-The-Wire),达到快速加载网页的效果。不用大量JavaScript,而是发送HTML的方式,不只可以实现快速加载首次页面的目的,还能够将模板渲染交给服务器,并在不牺牲传统单页应用程序的速度与响应性的情况下,让开发者使用各种程序语言开发网页程序,有效提升生产力。

网页应用程序通过发送HTML来呈现客户端页面,并非全新的方法,只是近几年JavaScript技术蓬勃发展,吸引了多数开发者的目光。由Ruby on Rails的创始人DHH所创办的Basecamp,在2020年开发了全新电子邮件网页应用Hey,这是一个功能齐全的子邮件用户端,但是仅使用很少的JavaScript,提供顺畅的操作体验,因而使得发送HTML来呈现客户端画面的发展,再次受到一些瞩目。

Basecamp把用来打造Hey前端的堆栈与技术打包,发布成为Hotwire设计框架,其中主要包含了Hotwire的核心Turbo框架,以及为HTML设计的JavaScript框架Stimulus。Turbo提供了一些补充技术,来大幅减少应用程序需要撰写的JavaScript,像是Turbo Drive让网页更新不需要重新加载整个页面,加快了连接与表单提交的速度,而Turbo Frames可以将页面解构成为独立的内容,通过定义浏览的范围,并进行延迟加载。

Turbo Streams则可以利用WebSocket传递页面更新,或是使用HTML和类CRUD操作,以回应表单提交,还有Turbo Native,可以让应用程序原生支持iOS和Android,无缝切换网页以及原生程序的区块。这些组件都以发送HTML运行,而当Turbo无法满足开发者的需求时,则可以使用Stimulus框架来解决剩下的问题。

Stimulus是一个JavaScript框架,但不像是其他前端框架,Stimulus不会接管前端,其目的仅是使用简单注解,将JavaScript对象连接到页面元素,来强化静态或是服务器渲染HTML。这些JavaScript对象称为Controller,Stimulus会持续监控页面,直到HTML资料Controller属性出现。

开发者也可以使用自己选用的工具,来完成HTML-Over-The-Wire的目的,只不过Hotwire包含完整的开发工具,并且提供跨平台解决方案,可供开发者方便使用。