window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() StimulusReflex - ein schneller Weg zur Erstellung reaktiver Anwendungen - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2021-06-22
Software-Entwicklung

StimulusReflex - ein schneller Weg zur Erstellung reaktiver Anwendungen

Der Codest

Pawel Muszynski

Software Engineer

Was ist StimulusReflex? Der heutzutage sehr beliebte HTML-over-the-wire-Ansatz hat zur Entwicklung von Frameworks und Bibliotheken geführt, die HTML über die Leitung senden, anstatt JSON zu verwenden. StimulusReflex ist eine von ihnen.

Es ist ein neuer Weg, eine reaktive Benutzeroberfläche in Ruby on Rails.
StimulusReflex erweitert die Möglichkeiten von Rails und Stimulus, indem es Benutzerinteraktionen erfasst und diese über Echtzeit-Websockets an Rails weiterleitet. Seiten werden schnell neu gerendert und alle Aktualisierungen werden über CableReady an den Client gesendet.

CableReady ermöglicht die Erstellung von Echtzeit-Updates durch Auslösen von clientseitigen DOM-Änderungen, Ereignissen und Benachrichtigungen über ActionCable. Im Gegensatz zu Ajax werden Operationen nicht immer vom Benutzer oder vom Browser initiiert, sondern können beispielsweise auch von Workern initiiert werden.

StimulusReflex wurde ursprünglich von LiveView von Phoenix inspiriert (eine Alternative zu SPA). Das Ziel von StimulusReflex war es immer, die Entwicklung moderner Anwendungen mit Rails zur produktivsten und angenehmsten Option zu machen. Und meiner Meinung nach ist ihnen genau das hier gelungen.

Warum sollten wir StimulusReflex verwenden?

Es ist einfach, sich auf die Entwicklung einer Produkt anstatt konsequente Änderungen an modernen JavaScript. Auch, StimulusReflex Anwendungen sind einfach, prägnant und klar Code und nahtlos integrieren mit Ruby on Rails. Dies ermöglicht es kleinen RoR-Teams, auch ohne große Kenntnisse von React große Dinge zu tun, Vue oder ihre modernen JavaScript-Lösungen.

Wie funktioniert StimulusReflex?

Reflex

Reflex ist eine transaktionale Aktualisierung der Benutzeroberfläche, die über eine dauerhaft offene Verbindung zum Server erfolgt. StimulusReflex ordnet Anfragen zu Reflex Klasse. Reflex Klassen sind in der app/reflexe Verzeichnis.

 Klasse PostReflex < AnwendungsReflex
 end


Wenn wir die Klasse Reflex mit einem Generator erstellen, können wir sehen, dass unsere Klasse diesen Kommentar enthält:

# Alle Reflex-Instanzen enthalten CableReady::Broadcaster und weisen die folgenden Eigenschaften auf:
  #
  # - connection - die ActionCable-Verbindung,
  # - Kanal - der ActionCable-Kanal,
  # - request - ein ActionDispatch::Request-Proxy für die Socket-Verbindung,
  # - session - der ActionDispatch::Session Speicher für den aktuellen Besucher,
  # - flash - der ActionDispatch::Flash::FlashHash für die aktuelle Anfrage,
  # - url - die URL der Seite, die den Reflex ausgelöst hat,
  # - params - Parameter aus dem nächstgelegenen Formular des Elements (falls vorhanden),
  # - element - ein Hash-ähnliches Objekt, das das HTML-Element darstellt, das den Reflex ausgelöst hat,
  # - signed - verwendet eine vorzeichenbehaftete globale ID, um einem Modell zugeordnete Datensätze zuzuordnen, z. B. element.signed[:foo],
  # - unsigned - verwendet eine unsignierte Global ID, um einen einem Modell zugeordneten Datensatz abzubilden, z. B. element.unsigned[:foo],
  # - cable_ready - ein spezielles cable_ready, das an den aktuellen Besucher übertragen werden kann (keine Klammern erforderlich),
  # - reflex_id - eine UUIDv4, die jeden Reflex eindeutig identifiziert.

Wie wir sehen können, gibt es nur wenige Eigenschaften, die in unserer Klasse verwendet werden können. Die interessanteste wird zu Beginn die Eigenschaft Element Eigenschaft, die alle DOM-Element-Attribute des Stimulus-Controllers sowie weitere Eigenschaften enthält, wie tagName, geprüft und Wert.

StimulusReflex gibt uns auch eine Reihe von Rückrufen, mit denen wir die Prozesse unserer Reflexe steuern können:

  • vor_reflex
  • um_reflex
  • nach_reflex

Wie Sie sehen können, ist die Benennung sehr ähnlich zu Active Record Callbacks.

Deklaration eines Reflexes in HTML mit data-Attribut

Der schnellste Weg, Reflexaktionen zu aktivieren, ist die Verwendung der Daten-Reflexion Attribut. Die Syntax entspricht dem Stimulus-Format: [DOM-Ereignis]->[ReflexClass]#[Aktion]

"="">StimulusReflex-Dokumentation. Ein großes Lob an alle, die an der Entwicklung von StimulusReflex beteiligt sind!

In diesem Beispiel ist die Daten-Reflexion Attribut wies auf die PostRefex Klasse und die Inkrement Methode auf der anklicken. Veranstaltung. Hier haben wir auch data-post-id die wir später in der Klasse Reflex durch element.dataset[:post_id].

class PostsReflex < AnwendungsReflex
def increment
post = Post.find(element.dataset[:post_id])

post.increment! :likes
end
end

Morphs

Standardmäßig, StimulusReflex aktualisiert die gesamte Seite (Page morph). Nach der erneuten Verarbeitung der Controller-Aktion, dem Rendern des View-Templates und dem Senden des Roh-HTML an Ihren Browser verwendet StimulusReflex die morphdom Bibliothek, um die kleinste Anzahl von DOM-Änderungen durchzuführen, die notwendig sind, um Ihre Benutzeroberfläche in nur wenigen Millisekunden zu aktualisieren.

StimulusReflex verfügt über drei verschiedene Betriebsmodi:

Seite Morph - führt eine ganzseitige Aktualisierung durch,
Selektor Morph - ersetzt den Inhalt eines Elements,
Nichts Morph - führt Funktionen aus, die Ihre Seite nicht aktualisieren (z. B. das Aufrufen Ihres Mitarbeiters).

Um unsere PostReflex#increment Methode, können wir einfach die morph und zielen auf den Teilbereich, den wir aktualisieren wollen.

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

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

Meine Gedanken

Diese recht kurze Einführung reicht aus, um Ihre Reise mit reaktiven Rails zu beginnen. StimulusReflex. Ist es nicht großartig, eine reaktive SPA-Anwendung mit nur ein paar Ruby-Zeilen und ohne JavaScript erstellen zu können? Für mich ist diese ganze HTML-over-the-wire-Idee aufregend, und ich werde mich in Zukunft auf jeden Fall mit diesem Thema beschäftigen. Für den Moment empfehle ich Ihnen dringend StimulusReflex Dokumentation. Ein großes Lob an alle, die an der Entwicklung von StimulusReflex beteiligt sind!

Lesen Sie mehr:

Warum Sie (wahrscheinlich) Typescript verwenden sollten

Wie kann man ein Projekt nicht durch schlechte Programmierpraktiken zerstören?

Strategien zum Abrufen von Daten in NextJS

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

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