window.pipedriveLeadboosterConfig={です。 ベース:'leadbooster-chat.pipedrive.com'、 companyId:11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2、 } ;(function () { var w = window もし (w.LeadBooster) {なら console.warn('LeadBooster already exists') } else { w.LeadBooster = { {. q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 関数 (n) { { this.q.push({ t: 'o', n: n, h: h }) this.q.push({ t: 't', n: n }) }, } } })() Stimulus.js:RailsアプリのためのJSフレームワーク代替 - The Codest
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2020-05-13
ソフトウェア開発

Stimulus.js:Railsアプリに代わるJSフレームワーク

The Codest

パヴェル・ムジンスキー

Software Engineer

制作者が言うように、Stimulusは控えめな野心を持ったJavaScriptフレームワークであり、フロントエンド全体を支配しようとするのではなく、HTMLを輝かせるのに十分な動作で補強することを目的としている。

何を考えているか分かるよ......もうひとつ。 JavaScript フレームワーク?すでにたくさんありますよ!その通りなのですが、私が注目したのはこのフレームワークです。 ベースキャンプ.この会社をご存知の方も多いだろう。 Ruby on Rails.彼らはまた、次のものを作った。 ターボリンクス スティミュラスはこれと素晴らしい相性を見せるからだ。というわけで、スティミュラスを試してみる価値はあるだろうか?

どのように機能するのか?

スティミュラスは、ページを監視し、次のページが表示されるのを待つ。 データコントローラ 属性を表示する。その データコントローラ 値は Stimulus コントローラを接続したり切断したりします。前提は単純で、クラスがHTMLとCSSの接続であるのと同じです、 データコントローラ はHTMLからJavaScriptへの橋渡しである。Stimulusはまた データアクション 属性は、ページ上のイベントがコントローラのメソッドをどのようにトリガーするかを記述します。 データターゲット 属性は、コントローラのスコープ内の要素を見つけるためのハンドルです。

簡単な取り付け

あなたのRailsアプリがwebpacker gemを使用している場合、webpacker gemがStimulusをインストールするタスクを提供しているので、簡単なコマンド1つでStimulusをインストールできます。Railsのルートディレクトリで次のコマンドを実行するだけです:

rails webpacker:install:stimulus
これが刺激となる。 package.json そして、以下の2つのファイルを作成する: app/javascript/controllers/index.js:

インポート { アプリケーション } from "stimulus"
インポート { definitionsFromContext } from "stimulus/webpack-helpers"

const application = Application.start()
const context = require.context("controllers", true, /_controller.js$/)
application.load(definitionsFromContext(context))

webpackのrequire.contextヘルパーが呼び出されているのがわかります。そして、その結果のコンテキストをApplication#loadメソッドに渡しています。これは、アプリケーションが[識別子]_controller.js での app/javascript/controllers/ ディレクトリに置く必要があります。ここで、識別子は HTML 内のコントローラの data-controller 識別子に対応します。これはまさに Stimulus コントローラを置くべき場所です。
アプリ/javascript/controllers/hello_controller.js も生成される。これは、私たちが遊ぶことができるコントローラの例です。

基本的な使い方

よし、これで hello_controller.js ファイルを作成した。 コード:

インポート { コントローラ } from "stimulus"

エクスポートデフォルトクラス extends Controller {
静的ターゲット = ["output"]
connect() {
this.outputTarget.textContent = 'こんにちは、刺激!'
}
}

しかし、ご存知のように、HTMLとJavaScriptを接続しなければ、何の効果も見られない。HTMLビューにコードを追加してみましょう。これはいつでも好きなときに貼ることができる:

<div data-controller="hello">
<p data-target="hello.output">&nbsp;</p>
</div>

それでね。以上です!ページをリロードして、"Hello, Stimulus!"と表示されたら、接続がうまくいっている証拠です。簡単でしょう?
オーケー、でもこれはただのテキスト表示だ。何かアクションを起こせないか?はい、できます!前にも書いたように データアクション 属性の値を変更します。次にHTMLビューを変更してみましょう:

<div data-controller="hello">
<p><input type="number" data-target="hello.days"><br><button data-action="click->hello#calculate">計算する</button></p>
</div>

景気刺激策 app/javascript/controllers/hello_controller.js:

インポート { コントローラ } from "stimulus"

export default クラス extends コントローラ {
静的ターゲット = ["output", "days"]
connect() {
this.outputTarget.textContent = 'いつから隔離されていますか?
}
計算() {
const element = this.daysTarget
const days = element.value
const lockdownDays = 14
let daysLeft = lockdownDays - days

もし (daysLeft < 1) {なら
  alert('あなたは自由です!')
}
else {
  alert(`隔離に必要な日数: ${daysLeft}`)
}

}
}

ここでは、隔離されている期間を計算するとてもシンプルなアプリを紹介します。これは、HTMLのdata-action属性を使うことで実現しました。
JavaScriptのコードのターゲットリストに "days "が追加されているのがわかるだろう。こうすると、Stimulusは自動的に this.daysTarget プロパティは、最初にマッチしたターゲット要素を返します。

他に知っておくべきことは?

コールバック

があることにお気づきだろうか。 コネクト() メソッドで使用される。これはビルトイン・コールバックのためのものだ。すべてのコールバックとそのライフサイクルを知っておくべきです:
イニシャライズ: コントローラが最初にインスタンス化されたときに一度だけ、
コネクトコントローラーがDOMに接続されているときはいつでも、
切断コントローラがDOMから切断されるときはいつでも。

アクション記述子

について データアクション 価値 クリック->hello#calculate はアクション記述子と呼ばれる。この記述子にはこう書かれている:

  • クリック はイベント名である、
  • こんにちわ はコントローラ識別子である、
  • 計算する はメソッド名である。

ターゲット

アクションと同じように、スティミュラスにもターゲット・ディスクリプタがある。その ハローデイズ の記述にはこうある: こんにちわ はコントローラ識別子である、
日 はターゲット名である。

前の例では、スティミュラスが this.daysTarget プロパティを作成する必要がある。また、より多くのプロパティを作成できることも知っておく必要があります。例に関連して、あなたは持つことができます:

this.daysTarget これは、コントローラのスコープ内の最初のターゲットまで評価されます。ターゲットがない場合、このプロパティはエラーフラグを立てます、
this.daysTargets は、コントローラのスコープ内のすべてのソースターゲットの配列まで評価します、
this.hasDaysTarget ターゲットがあればtrueを、なければfalseを返す。

ご覧のように、Stimulusはシンプルで、簡単にアプリケーションに追加することができます。RoRコミュニティで人気を博しているのも納得です。Ruby開発者である私自身、Stimulusでの作業をとても楽しんでいます。では、実際に使ってみてはいかがでしょうか?

続きを読む

  • ウェブアプリ開発:なぜRuby on Railsは選ぶ価値のある技術なのか?
  • 新しい現実の時。リモートワークの時代が始まって1カ月
  • ポーランドで有能なRuby開発者が見つかる5つの理由

関連記事

ソフトウェア開発

将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察

The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...

ザ・コデスト
ソフトウェア開発

ラトビアを拠点とするソフトウェア開発企業トップ10社

ラトビアのトップソフトウェア開発企業とその革新的なソリューションについて、最新記事でご紹介します。ラトビアの技術リーダーたちがあなたのビジネスをどのように向上させるかをご覧ください。

thecodest
エンタープライズ&スケールアップ・ソリューション

Javaソフトウェア開発の要点:アウトソーシングを成功させるためのガイド

outsourcingのJavaソフトウェア開発を成功させるために不可欠なこのガイドを読んで、The Codestで効率性を高め、専門知識にアクセスし、プロジェクトを成功に導きましょう。

thecodest
ソフトウェア開発

ポーランドにおけるアウトソーシングの究極ガイド

ポーランドのoutsourcingの急増は、経済、教育、技術の進歩がITの成長とビジネス・フレンドリーな環境を促進していることによる。

ザ・コデスト
エンタープライズ&スケールアップ・ソリューション

IT監査ツール&テクニック完全ガイド

IT監査は、安全かつ効率的で、コンプライアンスに準拠したシステムを保証します。その重要性については、記事全文をお読みください。

The Codest
ヤクブ・ヤクボヴィッチ CTO & 共同創設者

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    著作権 © 2025 by The Codest。無断複写・転載を禁じます。

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese