Итак, что нового в 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> через атрибуты моста языка разметки. Это делает простым все больше и больше взаимодействий веб-сайта более высокого уровня с нативными заменами.

Установка:

  1. Добавьте элемент hotwire-rails в свой файл gem: gem ‘hotwire-rails’

  1. Запустите установку пакета.
  2. Запустите rails hotwire:install.

Реализация:

Давайте создадим простое CRUD-приложение, такое как Twitter, используя hotwire, в котором мы можем публиковать/твитить сообщение, например сообщение, ретвитить сообщение и редактировать сообщение.

Итак, приступим к реализации.

По сути, мы собираемся сделать приложение, подобное приведенному ниже: