Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
Logikarchitektur11 Min. Lektüre·Vom ExodeUI-Team

State Machine UI: Deterministische, fehlerfreie Schnittstellen erstellen

Erfahren Sie in React, wie visuelle Zustandsmaschinen unmögliche UI-Zustände eliminieren, komplexe interaktive Komponenten vereinfachen und deterministische, fehlerfreie Schnittstellen erstellen.

Kurzfassung und Definition

Kernaussage

Eine UI-Zustandsmaschine ist ein mathematisches Modell, das alle gültigen Zustände beschreibt, die eine Schnittstellenkomponente einnehmen kann, sowie die expliziten Übergänge zwischen diesen Zuständen, die durch Benutzerereignisse oder Systembedingungen ausgelöst werden. Zustandsautomaten eliminieren ganze Kategorien von UI-Fehlern, indem sie „unmögliche Zustände unmöglich“ machen – Ihr Lade-Spinner und Ihr Erfolgshäkchen können nicht gleichzeitig angezeigt werden, wenn Ihre Zustandsmaschine diese Kombination verbietet.

Das Problem, das Zustandsmaschinen lösen

Die meisten UI-Fehler entstehen durch Komponenten, die logisch unmögliche Zustände einnehmen können. Ein klassisches Beispiel: Eine Schaltfläche zum Senden eines Formulars, die über kein explizites Statusmodell verfügt, kann sich aufgrund zweier separater boolescher Flags gleichzeitig im Status „Laden“ und im Status „Deaktiviert“ befinden. Eine Zustandsmaschine verhindert dies, indem sie verlangt, dass sich die Komponente zu jedem Zeitpunkt immer in genau einem genau definierten Zustand befindet.

  • „Boolean flag hell“ – isLoading, isDisabled, isError, isSuccess, alle widersprüchlich
  • Rennbedingungen, bei denen schnelle Benutzer mehrere Zustände gleichzeitig auslösen
  • Übergangsfehler, bei denen Animationen an falschen Zwischenpositionen beginnen
  • Die kognitive Belastung des Entwicklers durch die Verfolgung von n × n Flag-Kombinationen bei der Codeüberprüfung

Kernkonzepte von Zustandsmaschinen

Zustandsmaschinen bestehen aus einer endlichen Menge von Zuständen, einem Vokabular von Ereignissen, die Übergänge auslösen können, und Schutzbedingungen, die bestimmen, ob ein Übergang zulässig ist.

Staaten

Jeder Zustand repräsentiert einen bestimmten Zustand der Komponente. Beispiel für eine Datenabrufkomponente: Leerlauf, Laden, Erfolg, Fehler, Aktualisierung.

Ereignisse / Übergänge

Ereignisse lösen Zustandsänderungen aus. „SUBMIT“ versetzt ein Formular vom Leerlauf in den Ladezustand. „ERFOLGREICH“ geht vom Laden zum Erfolg über. „ERROR“ geht vom Laden in den Fehlerzustand über.

Wachen

Bedingungen, die für einen Übergang zum Feuer erfüllt sein müssen. Ein „SUBMIT“-Ereignis kann den Übergang „Leerlauf“ → „Laden“ nur dann auslösen, wenn der Formularvalidierungsschutz erfolgreich ist.

Kontext/Erweiterter Zustand

Hilfsdaten, die die Maschine neben dem aktuellen Statusnamen trägt (Benutzereingabewerte, Fehlermeldungen, geladene Daten).

Zustandsmaschinen in ExodeUI

ExodeUI bietet einen visuellen Knotengraph-Zustandsmaschineneditor. Sie zeichnen Zustände als Kreise, verbinden sie mit beschrifteten Pfeilen, die Ereignisse darstellen, und fügen jedem Zustand Federanimationen und visuelle Eigenschaftsänderungen hinzu. Die Maschine wird in der .exode-Datei gespeichert: In React laden Sie sie mit ExodeUICanvas und steuern sie über Eingaben und in Swift über ExodeUIController.

Produktionsnahes Implementierungsbeispiel

Implementierung der interaktiven Komponente
import { ExodeUICanvas } from 'exodeui';

// Springs, states and timing live in the .exode file (designed in the
// editor). Your code passes inputs in and hears events back.
export function AuthFlow() {
  return (
    <ExodeUICanvas
      src="/auth_flow.bexode"
      onTrigger={(name) => console.log('ExodeUI event:', name)}
    />
  );
}

Häufige Fragen

Verwandte Guides und Beispiele

Interaktive UI einmal gestalten. Dieselbe Datei ausliefern.

Erstelle Zustände, Federphysik und Logik visuell in ExodeUI und spiele dieselbe Datei in React, SwiftUI, Flutter und mehr ab. Kostenlos starten.

Kostenlos testen