JavaScript初心者にもオススメ!クリーンなコードでHTMLを拡張する「Stimulus」とは?
HTMLやCSSは得意だけれど、JavaScriptは苦手…という方は、多いのではないでしょうか。HTMLやCSSは書き方がある程度統一されていますが、JavaScriptは数えきれないフレームワークやライブラリがあるので、どれを使えばいいのか迷ってしまいます。
そのような方にこそおすすめしたいのが、StimulusというJavaScriptライブラリです。
今回は、*クリーンなコードでHTMLを拡張する「Stimulus」*の概要や基本的な操作方法を紹介します。初心者でも比較的簡単に扱えるので、ぜひ利用してみてはいかがでしょうか。
Stimulusとは?
Stimulusは、世界的なプロジェクトマネジメントツールBasecamp(旧37シグナルズ)を開発しているメンバーによって開発されているフレームワークです。
JavaScriptはフレームワークだけでも、Angular.JSやReact、Vue.jsと、様々なものがあり、特に初心者・中級者にとってはどれを学べばいいのか迷ってしまいます。もちろん、近年流行しているモダンなフレームワークをゼロから勉強するのもよいですが、DOM操作に関してより気軽に使えるのが、今回紹介するStimulusです。
Stimulusは、簡単にいえば、HTMLにある属性を付与することで、HTMLをコンポーネント単位でJavaScriptオブジェクトと連動させることができるフレームワークです。
コンポーネントとは、「見た目」と「振る舞い」をグループ化して部品化したもののことです。たとえば、パスワードの強度を測定するパスワードチェッカーは、HTMLで組み立てるテキストボックスという見た目部分の他に、実際にパスワードの強度を測定する振る舞い(アルゴリズム)が必要です。コンポーネントの考え方では、この「見た目」部分と*「振る舞い」部分*をセットにして開発します。
フロントエンド開発者と違い、デザイナーやディレクターの方はHTMLやCSSには詳しくても、JavaScriptの難しい話は倦厭されがちかもしれません。しかし、HTMLと簡単なJavaScriptの知識さえあれば、Stimulusは簡単に扱うことができます。
StimulusはWebpackやBabelのようなビルドシステムを使ってインストールすることができます。以下のURLでもアクセスできるので、src属性に貼り付けて利用してみましょう。
https://unpkg.com/stimulus/dist/stimulus.umd.js
参考:
Installing Stimulus in Your Application
Stimulusの基本の「き」
イメージ画像 / Unsplash
それでは、Stimulusの基本をゼロから解説していきます。
1. HTMLとJavaScriptを紐づける「data-controller」
HTMLとCSSについて少しでも勉強したことがある人は、次のコードを理解できると思います。
<div class="hello"></div>
これはHTMLとCSSをつなげるもっとも基本的な方法です。divタグのclass属性に「hello」と名付けることによって、CSSでスタイルを操作することができます。
同じように、StimulusではHTMLとJavaScriptをdata-controllerという属性で紐づけていきます。例えば、以下のようなコードです。
<div data-controller="hello"></div>
この*「見た目」の部分に対して、JavaScript側でcontrollerと呼ばれる「振る舞い」*部分を作成します。
import { Controller } from "stimulus"
export default class extends Controller {
greet() {
document.text.value = "Hello, ferret!";
}
}
これで、HTMLとJavaScriptがつながりました。
2. HTMLからJavaScriptの動作を呼び出す「data-action」
しかし、これだけでは何も起こらないので、HTML側を少し変えてあげましょう。
<div data-controller="hello">
<input type="text">
<button data-action="click->hello#greet">挨拶する</button>
</div>
これで、*「挨拶する」ボタンが押された時に、テキストボックスに「Hello, ferret!」*と表示されるようになります。
このように、「data-action」を指定したボタンは、クリックすることでJavaScript側のgreet関数を呼び出すことができます。
HTMLからJavaScriptに値を渡す「data-target」
もう一つ、別の例を出してみましょう。JavaScript側のコードは省略しますが、以下のHTMLをご覧ください。
<div data-controller="clipboard">
パスコード:<input data-target="clipboard.source" type="text" value="ferret" readonly>
<button data-action="clipboard#copy">クリップボードにコピー</button>
</div>
ここでは、「data-controller」「data-action」の他に、「data-target」が指定されているパーツがあることに気づくでしょう。上記のコードでは、*「クリップボードにコピー」というボタンを押すことで、「data-target」が指定されているテキストボックスに入っている「ferret」*という文字列をクリップボードにコピーします。
Stimulusの3つの「概念」
Stimulusの基本的な考え方は以上です。まとめると、Stimulusには*「controller」「action」「target」*の3つの概念があり、これらを組み合わせることで、JavaScriptのDOM操作を簡単にしてくれます。
しかも、重要なのは、HTMLの構造を崩さずに(というよりも、既存のHTMLに属性をくっつけるだけで)操作可能になる、という点です。つまり、デザイナーの方は単純にWebページのデザインをまず作成したあとに、そのまま*「振る舞い」*を付け加えればいいことになります。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- URL
- URLとは、「Uniform Resource Locator」の略称です。情報がどこにあるのかを示すインターネット上の住所のようなものだと考えるとわかりやすいでしょう。各ページのURLは、インターネットブラウザの上部に文字列として表示されています。日本語では「統一資源位置指定子」という名称がついていますが、実際には日本でもURLという語が使われています。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
おすすめ記事
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング