Итак, что нового в rails 7.0?
Приложения, созданные с помощью Rails 7, по умолчанию получат Turbo и Stimulus (от Hotwire) вместо Turbolinks и UJS.
Hotwire может быть новым подходом, обеспечивающим быстрые обновления модели DOM путем отправки HTML по сети.
По сути, Hotwire — это альтернативный подход к созданию современных веб-приложений без использования большого количества JavaScript путем отправки по сети HTML вместо JSON.
Это обеспечивает быструю первую загрузку страниц, поддерживает рендеринг шаблонов на сервере и обеспечивает более простую и дополнительную продуктивную разработку на любом языке программирования, не жертвуя при этом скоростью или отзывчивостью, характерными для стандартного одностраничного приложения.
Сердце Hotwire — Turbo. Набор дополнительных методов для мгновенного изменения страниц и типовых представлений, разделения расширенных страниц на части и потоковой передачи частичных обновлений страниц через WebSocket. При этом ни в малейшей степени не пишу JavaScript. И с самого начала разработан для идеальной интеграции с родными гибридными приложениями для iOS и Android.
В то время как Turbo иногда обеспечивает как минимум 80% интерактивности, для которой традиционно требовался бы JavaScript, все еще бывают случаи, когда требуется тире пользовательского кода. Stimulus делает это простым благодаря HTML-ориентированному подходу к состоянию и связыванию.
Стандартизирует средства, с помощью которых интернет и собственные компоненты мобильного гибридного приложения консультируются друг с другом. strong> через атрибуты моста языка разметки. Это делает простым все больше и больше взаимодействий веб-сайта более высокого уровня с нативными заменами.
Установка:
- Добавьте элемент hotwire-rails в свой файл gem: gem ‘hotwire-rails’
- Запустите установку пакета.
- Запустите rails hotwire:install.
Реализация:
Давайте создадим простое CRUD-приложение, такое как Twitter, используя hotwire, в котором мы можем публиковать/твитить сообщение, например сообщение, ретвитить сообщение и редактировать сообщение.
Итак, приступим к реализации.
По сути, мы собираемся сделать приложение, подобное приведенному ниже: