Cloudflare Workers で動く Go + htmx 4 + gsxui

サーバーでレンダリングする gsx コンポーネント、リクエストには htmx 4、ローカル状態には hx-live、ライブ更新には D1 と Durable Objects。Go は TinyGo でコンパイルします。Node もバンドラーも不要です。

配信元tinygo js/wasmenvcloudflare
サーバーとの往復
gsxui のフォームを hx-post で送信します。サーバーは gsx フラグメントと帯域外(out-of-band)のトーストで応答します。
ダイアログ + hx-get
ダイアログの本文は、開くたびにサーバーから取得されます。

サーバー情報

リクエスト時に gsx コンポーネントでレンダリングされました。

読み込み中…
タブ + 遅延読み込みパネル
「統計」パネルは、そのタブを初めてクリックしたときに一度だけ読み込まれます。
このパネルはページと一緒にレンダリングされました。
hx-live によるクライアント状態
サーバーとの往復なし:カウンター、ドロップダウン、トグル、ライブフィルター。
カウント:0
  • badge
  • button
  • button-group
  • card
  • dialog
  • empty
  • field
  • input
  • item
  • label
  • native-select
  • separator
  • switch
  • tabs
  • toast
  • toaster
ライブ更新
D1 とトピックごとの Durable Object が、すべての変更を hx-ws 経由で開いているすべてのタブにプッシュします。