青いやつの進捗日記。

メモとしてべんきょうのしんちょくをかいていきます。あとで自分が検索しやすいもん

【メモ】Stimulusなんてフレームワークがあるのね。サーバーサイド組み込み用のHTMLテンプレート実装とかで輝きそう。

necomesi.jp

一緒にプロジェクトやってる人がこんなの見つけたーと話していた。

受託のWeb開発とかだとサーバーサイドとの兼ね合いもあり自由にReactを使うとか使って宣言的に出来ず、どうしても命令的にやらざるを得ないことはある。そこで見つけた上記の記事「Stimulus – 受託Web屋に「ちょうどいい」JavaScriptフレームワーク」めちゃめちゃ気になるのでちゃんと読んで理解したい。


このフレームワークはReactみたいに全てを支配するわけではなくて、普通のマークアップに機能を足すものらしい。つまるところ状態はJS側で保持しない。まあ古き良きWeb開発。

今までは、機能を実装するならアコーディオンなら

  • js-accordionみたいにクラスをHTMLに振って
  • querySelectorAllしてforEachしてそれぞれにnew Accordionとかして
  • その中で.js-accortion_btnとかをquerySelectorしてaddEventListenerでクリックイベントやら登録して…

みたいにやる。

それが、Stimulusだと結構書き味変わってくるっぽい。

  • data-controllerでHTMLに処理を割り当てる。data-contoller="accortion"みたいな感じらしい。つまりjs-accordionって振ってquerySelectorAllしてforEachしてそれぞれにnew Accordionとかして、と同じ感じかな。
  • data-actionでイベントの登録をする。data-action="click->accordion#open"みたいな感じらしい。これは、addEventListenerと同じ感じか。
  • data-targetはJS側からDOMを参照する対象を設定する。.js-accortion_btnとかをquerySelectorするのと同じ感じか。

なるほど。Reactとかだと閉じた世界作れるけど、命令的にやると全てがグローバルにある状況で必死に名前を被らせないように頑張るけど、それをしなくて良くて、Stimulusで繋いでくれるのですね。 そしてDOMの監視してくれるのも良い。後から追加したDOMにアコーディオンの機能付与したかったらその要素だけにnewする必要あるのだけど、それをやってくれるの楽。

サーバーサイド組み込み用のHTMLテンプレートを実装する仕事

と書いてあって、うわーまさにそういうのやる〜〜〜という気持ちになった


ということでこのブログ書くことで理解できた。なるほど過ぎる。これは命令的にやるなら使いたいぞ。

シフトブレインの方のブログもあったので載せておく

yuheiy.hatenablog.com