「Hotwire morphing」のメモ

Hotwire (Turbo)の新機能Morphingについてのメモです。
下記のページで紹介されていたサンプルコードを動かしてみました。

37signals Dev — Demo of page refreshes with morphing
How page refreshes work, and how they compare to stream actions.

環境は次のようになります。

macOS Sonoma
Homebrew
rbenv

Redis 7.2.4

Ruby 3.3.0-preview2
Rails 7.1.3.2
turbo-rails 2.0.0.pre.beta.1

Action Cable (WebSocket)が使うRedisをインストールします。
brew install redis
Redisを起動します。
/usr/local/opt/redis/bin/redis-server /usr/local/etc/redis.conf

Rubyをインストールします。
rbenv install 3.3.0-preview2

ソースコードをクローンします。
git clone https://github.com/basecamp/turbo-8-morphing-demo.git
cd turbo-8-morphing-demo

Morphingのブランチを選びます。
別ブランチにある従来のストリームでの実装と比較できます。
git checkout page-refreshes

Railsをセットアップします。
bin/setup
Railsサーバを起動します。
bin/rails server

ページを開きます。
http://127.0.0.1:3000

参照
37signals Dev — Turbo 8 released
Morphing for smooth page refreshes

37signals Dev — A happier happy path in Turbo with morphing
Jorge Manrubia – Making a difference with Turbo – Rails World 2023

Turbo Handbook
Smooth page refreshes with morphing

37signals Dev — Building Basecamp project stacks with Hotwire
Progressive Enhancement



▼この記事がいいね!と思ったらブックマークお願いします
このエントリーをはてなブックマークに追加