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.