Live Demo

すべてのインタラクションは WebSocket 経由でサーバーの GenServer に届きます。

:patch

カウンター — 部分更新

{:patch, "demo-counter-value", rendered, assigns} を使用。 カウンター部分の要素だけが更新され、ページ全体は再描画されません。

0
ws-submit

form submit

自由入力フォームは ws-submit で送信します(入力値は動的なため <.dialup_action> の静的パラメータでは表現できません)。 同じ操作は declare_action で AI にも公開されます。

ws-change

リアルタイム入力同期

テキスト入力は ws-change + ws-debounce でサーバーへ同期します。 確定ボタンは <.dialup_action> です。

入力内容がここにリアルタイム表示されます

:update

メッセージログ — 全体更新

{:update, assigns} を使用。送信のたびに #dialup-root 全体を idiomorph で差し替えます。

まだメッセージがありません。

navigate

SPA ナビゲーション

ページ移動は <.dialup_action navigate="/path"> で宣言します。 人間のリンクと AI のナビゲーションツールが同時に生成されます。