Hotwire — это не отдельная технология, а комбинация трех разных технологий: Turbo, Stimulus и Strada. Хотя поначалу это может показаться запутанным, это довольно просто, если вы понимаете, как работает каждая технология.

Немного истории

В 2017 году в Rails 5 появилась возможность включать Turbolinks в ваше приложение.

Turbolinks® ускоряет навигацию по вашему веб-приложению.

Затем в августе 2018 года был представлен Stimulus, скромный JavaScript-фреймворк для уже имеющегося у вас HTML.

… разработан для того, чтобы дополнить ваш HTML поведением, достаточным для того, чтобы он сиял.

Примерно в то же время было представлено Action Cable, решение для бесшовной интеграции WebSockets с остальной частью вашего приложения Rails.

Представляем Hotwire

В декабре 2020 года миру был представлен Hotwire.
Он включает в себя три технологии;

Турбо

Turbo заменяет устаревшие Turbolinks и добавляет возможность потоковой передачи частичных обновлений страниц через WebSockets.

Стимул

Идеально подходит для тех случаев, когда вам требуется немного JavaScript в вашем приложении.

Strada (еще не выпущено)

Стандартизирует то, как веб- и нативные части мобильного гибридного приложения взаимодействуют друг с другом через атрибуты HTML-моста. Это упрощает постепенное повышение уровня веб-взаимодействия с помощью нативных замен.

Обзор:

Turbo заменяет устаревшие Turbolinks и добавляет возможность потоковой передачи частичных обновлений страниц через WebSockets. Stimulus идеально подходит для тех случаев, когда вам требуется немного JavaScript в вашем приложении. Strada, который еще не выпущен, стандартизирует то, как веб- и нативные части мобильного гибридного приложения взаимодействуют друг с другом через атрибуты HTML-моста.

Основные выводы:

  1. Hotwire — это не отдельная технология, а комбинация нескольких технологий, которые работают вместе.
  2. Hotwire может ускорить разработку современных веб-приложений за счет устранения накладных расходов, связанных с более сложными платформами, и использования потоковой передачи частичных обновлений страниц через WebSockets.