How do you add Turbo to your existing Rails app? What do you need to watch out for as you transition to a full HOTWire approach? I found it to be very straight forward, and mostly a search and replace operation.
Add Turbo Rails gem to the Gemfile and remove Turbolinks:
./bin/bundle install and
Search through your code base for
turbolinks to see where you are using it. The first change I found was in the html layouts.
You may have configured some links that you didn’t want Turbolinks to follow, by setting the
data-turbolinks attribute to false. This attribute is now
data-turbo, so look for those throughout your code base.
You may have used the permanent attribute,
data-turbolinks-permanent, which kept elements between page visits, and mimicked the behavior of single page applications. This attribute is now
turbolinks events, you should make sure the names of the events now start with
turbo instead of
turbolinks. I have a couple Stimulus controllers that listen to the
turbolinks:before-visit event, so those are now
turbo:before-visit. You can see all the Turbo events and compare them with the Turbolinks events.
Of course, run your tests after all these changes, and QA all your pages to make sure nothing is broken.
I’m looking forward to taking advantage of more of the features of Turbo, including lazy loading frames and an easier to use broadcast method for changes on the page.