コンテンツにスキップ

144. Hyperscript Integration(Hyperscriptとの連携:まるで「英語」のようにフロントエンドを操る)

原理:直感的で「読みやすい」スクリプト

JavaScriptの難解さを取り払う

HTMXの生みの親が、HTMXと一緒に使うために開発した言語。それが「Hyperscript(ハイパースクリプト)」です。 「JavaScriptは記号が多くて読みづらい……」と感じている初心者のために、「まるで英語を話すように」ブラウザの動きを記述できるように設計されています。

「Hyperscript 連携」とは、HTMXと同じように HTML 属性の中に直接、英語に近い文章で「動き」を書き込む手法のことです。


実践:魔法の呪文「_ 」を使いこなす

1. 驚くほど読みやすいコード

ボタンを押したときに、別の要素の色を変えて、1秒後に消す。これを JavaScript と Hyperscript で比較してみましょう。

JavaScript (Vanilla JS):

btn.addEventListener('click', () => {
  const box = document.querySelector('#box');
  box.style.color = 'red';
  setTimeout(() => { box.remove(); }, 1000);
});

Hyperscript:

<button _="on click add .red-text to #box then wait 1s then remove #box">
    クリックして魔法をかける
</button>

2. HTMXとの「阿吽の呼吸」

「HTMXの通信が終わったら、このメッセージを出して」といった指示が、これ以上ないほどシンプルに書けます。 _="on htmx:afterOnLoad log 'Done!'" と書くだけでいいのです。

3. ステップ・バイ・ステップ解説

  1. ライブラリの読み込む: <script src="https://unpkg.com/hyperscript.org"></script> を一行足します。
  2. _ 属性に書く: _ または data-hs 属性の中に、「on (イベント) (アクション)」の形でやりたいことを書きます。
  3. 英語として読む: 自分の書いた属性を音読してみてください。意味が通じれば、それは正しく動きます。

比較:Alpine.js vs Hyperscript

Alpine.js (143.)

  • 特徴: 「データの状態(開/閉など)」を管理するのが得意。Vue.jsに近い。

Hyperscript

  • 特徴: 「一連のアクション(これをやって、次に待って、あれをする)」を記述するのが得意。
  • 利点: 言葉としての分かりやすさに特化しており、HTMXの「HTML中心」という思想と最も深く共鳴している。

まとめ:初心者のための「言葉の力」

Hyperscript を知ることは、プログラミングを「記号のパズル」から「言葉の魔法」に変える体験です。

  • 書くのが楽しくなる: 自分の思い描いた動きが、ほぼ英語そのままで反映される楽しさは、一度味わうと病みつきになります。
  • あとで読み返しても分かる: 1ヶ月後の自分がコードを見ても、「あ、ここでは色を変えてから消しているんだな」とすぐに理解できます。
  • HTMXファミリーの絆: 同じ哲学から生まれたツールなので、連携で迷うことがほとんどありません。

コードを語り、画面を動かす。Hyperscript という「もう一つの魔法」を HTMX に添えて、技術の難しさを感じさせない、人間味あふれる温かいWebエクスペリエンスを創造してください。次の記事では、リアルタイムに情報を届ける「SSE(Server-Sent Events)との連携(145. SSE Integration)」をご紹介します。