在过去的几年里,单页应用(SPA)一直在持续上升。今天的很多网络应用技术栈都依赖于后端的JSON APIs,由前端应用来修改网络浏览器中的DOM,以帮助为用户创造一个快速和无缝的体验。
当Ruby on Rails创建时,它是为在服务器上渲染页面而开发的。因此,要用Ruby on Rails在后端运行来构建SPA,你必须将JSON有效载荷作为响应来渲染,并让前端来处理其余的事情。
但是,如果前端可以更新DOM,从后端发送HTML而不是JSON呢?
这就是Hotwire出现的地方。
Hotwire的自我描述是:
构建现代网络应用的另一种方法,无需使用大量的JavaScript,通过电线发送HTML而不是JSON。这使得页面首次加载速度快,将模板渲染保留在服务器上,并允许使用任何编程语言进行更简单、更有成效的开发体验,而不牺牲任何与传统单页应用相关的速度或响应性。
Hotwire的创建是为了用良好的老式HTML取代重载的JS SPA,鼓励开发者将应用视为一组框架,可以由服务器发送的HTML来替代或增强。
考虑到这一点,使用Hotwire意味着保持Ruby on Rails的编程方式,因为它主要使用你需要编写的Ruby on Rails视图和参数。
Hotwire组件
Hotwire由以下三个组件组成:
- Turbo:这是Hotwire的核心。它由一套技术组成,用于加快页面变化和表单提交的速度,将复杂的页面划分为组件,并通过WebSocket流式传输部分页面更新,无需编写任何JS代码。
- Stimulus:一些互动性可能需要一些JS代码才能按要求工作,因此,对于那些需要自定义代码的情况,Stimulus使之发挥作用。
- Strada:这个组件用于允许移动混合应用程序通过HTML桥接属性相互交谈。在写这篇文章的时候,Strada还没有被发布。
你怎么能开始呢?
首先,问问自己,你认为这适合你的产品吗?如果是的话,你想在MVP上尝试一下,或者你只是想看看它是如何工作的?
在Rootstrap,我们把Hotwire与Tailwind、Device、ActiveAdmin和一些更有用的自定义选项放在一起,使你的生活变得更加容易。
因此,请随时克隆我们的Ruby on Rails Hotwire基地,并开始进行黑客攻击!
另外,如果你觉得这篇文章有用,别忘了给我们发一个 。