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 }) }, } } })() StimulusReflex - リアクティブ・アプリを素早く作成する方法 - The Codest
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2021-06-22
ソフトウェア開発

StimulusReflex - リアクティブアプリを素早く作成する方法

The Codest

パヴェル・ムジンスキー

Software Engineer

StimulusReflex とは?現在、HTML over-the-wire アプローチは非常に人気があり、JSON を使用する代わりに HTML をワイヤ経由で送信するフレームワークやライブラリの作成につながりました。StimulusReflex はそのひとつです。

でリアクティブなユーザー・インターフェイスを作成する新しい方法である。 Ruby on Rails.
StimulusReflex は、ユーザーインタラクションをキャプチャしてリアルタイムのウェブソケット経由で Rails に渡すことにより、Rails と Stimulus の機能を拡張します。ページは迅速に再レンダリングされ、すべての更新は CableReady を介してクライアントに送信されます。

CableReady を使用すると、クライアント側の DOM の変更、イベント、および以下のような通知をトリガーとして、リアルタイムの更新を作成できます。 アクションケーブル.Ajaxとは異なり、操作は常に他のブラウザのユーザーによって開始されるとは限らず、例えばワーカーによって開始されることもある。

刺激反射 はもともとPhoenixのLiveView(SPAの代替)にインスパイアされたものです。StimulusReflexの目標は常に、Railsでモダンなアプリを構築することを最も生産的で楽しい選択肢にすることです。そして私の意見では、これはまさに彼らがここで達成したことです。

なぜStimulusReflexを使う必要があるのか?

単純なことだ。 製品 現代的な一貫した変化を導入するのではなく JavaScript.また、 刺激反射 アプリケーションは、シンプルで簡潔かつ明確である。 コード とシームレスに統合する。 Ruby on Rails.これにより、Reactの知識がなくても、小さなRoRチームが大きな仕事をすることができる、 Vue または最新のJavaScriptソリューション。

StimulusReflexはどのように機能するのですか?

リフレックス

リフレックス は、サーバーへの持続的なオープン接続を介して行われるトランザクションUI更新です。StimulusReflex はリクエストを リフレックス クラスである。 リフレックス クラスは アプリ/反射神経 ディレクトリにある。

 class PostReflex < ApplicationReflex
 終了


ジェネレーターを使ってリフレックス・クラスを作成すると、クラスにはこのようなコメントが含まれていることがわかる:

# すべてのReflexインスタンスはCableReady::Broadcasterを含み、以下のプロパティを公開します:
  #
  # - connection - ActionCable接続、
  # - channel - ActionCableチャンネル、
  # - request - ソケット接続の ActionDispatch::Request プロキシ、
  # - session - 現在の訪問者の ActionDispatch::Session ストアです、
  # - flash - 現在のリクエストの ActionDispatch::Flash::FlashHash です、
  # - url - リフレックスをトリガーしたページのURLです、
  # - params - 要素に最も近いフォームのパラメータ(もしあれば)
  # - element - リフレックスをトリガーしたHTML要素を表すハッシュライクオブジェクト、
  # - signed - 署名されたグローバルIDを使用して、モデルに帰属するデータセットをマッピングします、
  # - unsigned - 符号なしグローバル ID を使用して、モデルに帰属するデータセットをマッピングします、
  # - cable_ready - 現在の訪問者にブロードキャストできる特別なcable_ready(括弧は必要ありません)、
  # - reflex_id - 各Reflexを一意に識別するUUIDv4。

見ての通り、このクラスで使えるプロパティはいくつかある。最初のうちは エレメント プロパティには、刺激コントローラのすべての DOM 要素属性と、次のような他のプロパティが含まれます。 タグ名, チェック済み そして 価値.

刺激反射 また、反射のプロセスをコントロールするためのコールバックも用意されている:

  • ビフォア・リフレックス
  • アラウンド・リフレックス
  • アフターリフレックス

見ての通り、ネーミングはActive Record Callbacksとよく似ている。

HTMLでリフレックスをdata属性で宣言する

リフレックスアクションを有効にする一番早い方法は データ反射 属性に従います。構文はスティミュラスのフォーマットに従う: [DOM-event]->[ReflexClass]#[action]。

"="">StimulusReflexのドキュメント。StimulusReflexの開発に携わったすべての人々にエールを送ります!

この例では データ反射 属性が指摘した。 ポスト・レフェックス クラスと インクリメント メソッドを クリック イベントを開催した。ここでは データ投稿ID を通して、後でリフレックス・クラスで使うことができる。 要素.データセット[:post_id].

class PostsReflex < ApplicationReflex
def increment
post = Post.find(要素.データセット[:post_id])

post.increment!:likes
end
終了

モルフ

デフォルトでは 刺激反射 はページ全体を更新します (Page morph)。コントローラアクションを再処理し、ビューテンプレートをレンダリングし、生の HTML をブラウザに送信した後、StimulusReflex は モーフドム ライブラリを使って、UIをわずか数ミリ秒で更新するために必要な最小限のDOM修正を行う。

刺激反射 は、3つの異なる動作モードを備えている:

ページモーフ - は全ページを更新する、
セレクター・モーフ - 要素の内容を置き換える、
ナッシング・モーフ - は、ページを更新しない関数を実行します(たとえば、従業員を呼び出すなど)。

私たちを変えるために ポストリフレックス1TP63ティンクリメント メソッドを使うことができます。 モーフ キーワードで、更新したいパーシャルを指定する。

def increment
post = Post.find(element.dataset[:post_id])
post.increment!:likes

morph "#posts_#{post.id}", render(partial: 'post', locals: { posts: post })
終了

私の考え

を使ったリアクティブRailsの旅を始めるには、この短い紹介だけで十分です。 刺激反射.Rubyを数行書くだけで、JavaScriptを使わずにリアクティブなSPAアプリを作れるなんて、素晴らしいと思いませんか?私にとっては、このHTML over-the-wireというアイデア全体がエキサイティングで、将来このトピックについて必ず掘り下げるつもりだ。今のところは、以下を強くお勧めする。 StimulusReflex ドキュメント.StimulusReflexの開発に携わったすべての人々にエールを送りたい!

続きを読む

おそらく)Typescriptを使うべき理由

悪いコーディング・プラクティスでプロジェクトを潰さないためには?

NextJSのデータフェッチ戦略

関連記事

ソフトウェア開発

将来を見据えたウェブ・アプリケーションの構築: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