9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Phoenix LiveView] link、live_redirect、live_patchの違い

Last updated at Posted at 2020-10-09

これらの違いについてもやもやしていましたが、Jose Valimさんの分かりやすい解説を見つけたので、要点を整理します。

コツ

  • LiveViewでページ移動する場合、基本的にlive_redirect/2(ブラウザ側)とpush_redirect/2(サーバ側)使う。
  • 同じLiveView内でページ移動時にサーバから送るデータを最小限にしたい場合のみにpatchヘルパー(live_patch/2push_patch/2)の使用を検討する。(例:テーブルのソート)

どうリロードされるか

link/2

  • フルリロード

redirect/2

  • フルリロード

live_redirect/2(ブラウザ側) & push_redirect/2(サーバ側)

  • LiveViewはリロードされるが、 使用中のレイアウトはそのまま。
  • mountが呼ばれる。

live_patch/2 (ブラウザ側)& push_patch/2(サーバ側)

  • 使用中のLiveViewが最小限の差分のみ更新される。
  • mountは呼ばれない。
  • 別のLiveViewsにpatchすることはできないが、仮にもし別のLiveViewにpatchしようとしたら、フォールバックとしてredirectされる。

以上

9
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?