Railsアプリケーションのフロントエンド開発をシンプルかつ効率的にするためのJavaScriptフレームワーク「Stimulus」。
Stimulusは、HTMLを中心に据え、JavaScriptをシンプルに保つことを目的としたフレームワークです。
この記事では、Stimulusを使い始めるために理解しておきたい基本的な概念をまとめて紹介します。
各概念の詳細については、それぞれのリンク先の記事で詳しく解説していますので、ぜひ参考にしてください。
Stimulusとは?
Stimulusは、Basecampが開発したJavaScriptフレームワークで、Railsアプリケーションとの相性が非常に良いことで知られています。
Stimulusの特徴は、HTMLを中心に据え、JavaScriptをシンプルで保守しやすく保つことです。
Stimulusでは、HTML要素にデータ属性を指定することで、JavaScriptの振る舞いを簡単に追加できます。
Stimulusの基本概念
Stimulusを使いこなすためには、以下の7つの基本概念を理解することが重要です。
- Controllers(コントローラー)
- Lifecycle Callbacks(ライフサイクルコールバック)
- Actions(アクション)
- Targets(ターゲット)
- Outlets(アウトレット)
- Values(バリュー)
- CSS Classes(CSSクラス)
それぞれの概念について簡単に紹介します。
Controllers(コントローラー)
Stimulusの中心的な概念です。
コントローラーは、HTML要素に対してJavaScriptの振る舞いを追加するための仕組みです。
HTML要素にdata-controller
属性を指定することで、その要素をStimulusコントローラーに関連付けます。

Lifecycle Callbacks(ライフサイクルコールバック)
Stimulusコントローラーには、特定のタイミングで自動的に呼び出されるライフサイクルメソッドが用意されています。
主なライフサイクルメソッドは以下の通りです。
connect()
:コントローラーがHTML要素に接続されたときに呼ばれるdisconnect()
:コントローラーがHTML要素から切り離されたときに呼ばれる

Actions(アクション)
Stimulusでは、HTML要素のイベント(クリック、入力など)をコントローラーのメソッドに簡単に関連付けることができます。
HTML要素にdata-action
属性を指定することで、イベントとコントローラーのメソッドを関連付けます。

Targets(ターゲット)
Stimulusでは、コントローラー内で特定のHTML要素を簡単に参照するために「ターゲット」という仕組みを使います。
HTML要素にdata-[コントローラー名]-target
属性を指定することで、コントローラー内で簡単に要素を取得できます。

Outlets(アウトレット)
Stimulusでは、異なるコントローラー間で連携するために「アウトレット」という仕組みを使います。
アウトレットを使うことで、あるコントローラーから別のコントローラーのメソッドやプロパティに簡単にアクセスできます。

Values(バリュー)
Stimulusでは、HTML要素からJavaScriptコントローラーに値を簡単に渡すために「バリュー」という仕組みを使います。
HTML要素にdata-[コントローラー名]-[値名]-value
属性を指定することで、値をコントローラーに渡せます。

CSS Classes(CSSクラス)
Stimulusでは、JavaScriptコントローラー内でCSSクラスを簡単に管理するために「CSSクラス」という仕組みを使います。
HTML要素にdata-[コントローラー名]-[クラス名]-class
属性を指定することで、CSSクラスをコントローラー内で簡単に操作できます。

Stimulusを使うメリット
Stimulusを使うことで、以下のようなメリットがあります。
- HTMLを中心に据え、JavaScriptをシンプルに保てる
- Railsアプリケーションとの相性が良く、導入が簡単
- コードがシンプルで保守しやすくなる
- JavaScriptの複雑さを抑え、開発効率が向上する
まとめ
Stimulusは、Railsアプリケーションのフロントエンド開発をシンプルかつ効率的にするためのJavaScriptフレームワークです。
Stimulusを使いこなすためには、以下の7つの基本概念を理解することが重要です。
- Controllers(コントローラー)
- Lifecycle Callbacks(ライフサイクルコールバック)
- Actions(アクション)
- Targets(ターゲット)
- Outlets(アウトレット)
- Values(バリュー)
- CSS Classes(CSSクラス)
各概念の詳細については、それぞれのリンク先の記事で詳しく解説していますので、ぜひ参考にしてください。
Stimulusを理解して、Railsアプリケーションのフロントエンド開発をより効率的に進めましょう。