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-моста.
Основные выводы:
- Hotwire — это не отдельная технология, а комбинация нескольких технологий, которые работают вместе.
- Hotwire может ускорить разработку современных веб-приложений за счет устранения накладных расходов, связанных с более сложными платформами, и использования потоковой передачи частичных обновлений страниц через WebSockets.