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 →
Arhitectura logica11 minute de citit·De echipa ExodeUI

State Machine UI: Construirea de interfețe deterministe, fără erori

Aflați cum mașinile cu stări vizuale elimină stările imposibile ale UI, simplifică componentele interactive complexe și creează interfețe deterministe, fără erori în React.

Rezumat direct și definiție

Core Takeaway

O mașină de stări UI este un model matematic care descrie toate stările valide pe care le poate ocupa o componentă de interfață și tranzițiile explicite între acele stări declanșate de evenimentele utilizatorului sau condițiile sistemului. Mașinile de stat elimină categorii întregi de erori ale UI făcând „stări imposibile imposibile” — rotorul de încărcare și bifa de succes nu pot apărea ambele simultan dacă mașina de stat interzice această combinație.

Mașinile cu starea problemei rezolvă

Majoritatea erorilor UI provin din componente care pot intra în stări imposibile din punct de vedere logic. Un exemplu clasic: un buton de trimitere a formularului care nu are un model de stare explicit poate fi simultan într-o stare „încărcare” și într-o stare „dezactivată” din două steaguri booleene separate. O mașină de stări previne acest lucru solicitând ca componenta să fie întotdeauna exact într-o stare bine definită în orice moment.

  • „Iad steag boolean” — isLoading, isDisabled, isError, isSuccess all conflicting
  • Condiții de cursă în care utilizatorii rapidi declanșează mai multe stări simultan
  • Erori de tranziție în care animațiile încep din poziții intermediare incorecte
  • Sarcina cognitivă a dezvoltatorului de la urmărirea n × n combinații de semnale în examinarea codului

Conceptele de bază ale mașinii de stat

Mașinile de stări constau dintr-un set finit de stări, un vocabular de evenimente care pot declanșa tranziții și condiții de gardă care determină dacă o tranziție este permisă.

state

Fiecare stare reprezintă o condiție specifică a componentei. Exemplu pentru o componentă de preluare a datelor: inactiv, încărcare, succes, eroare, reîmprospătare.

Evenimente / Tranziții

Evenimentele declanșează schimbări de stare. „TRIMITERE” face tranziția unui formular de la inactiv la încărcare. „SUCCES” trece de la încărcare la succes. „EROARE” trece de la încărcare la eroare.

gardieni

Condiții care trebuie să fie adevărate pentru trecerea la foc. Un eveniment „SUBMIT” poate declanșa doar tranziția inactiv → încărcare dacă garda de validare a formularului trece.

Context / Stare extinsă

Date auxiliare pe care mașina le poartă (valori introduse de utilizator, mesaje de eroare, date încărcate) alături de numele stării curente.

Mașini de stat în ExodeUI

ExodeUI oferă un editor vizual de mașini de stări de nod-graf. Desenați stări ca cercuri, le conectați cu săgeți etichetate reprezentând evenimente și atașați animații de primăvară și modificări de proprietăți vizuale fiecărei stări. Aparatul este salvat în fișierul .exode: în React îl încărcați cu ExodeUICanvas și îl conduceți prin intrări, iar în Swift prin ExodeUIController.

Fragment de implementare a producției

Implementarea componentelor interactive
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)}
    />
  );
}

Întrebări frecvente

Ghiduri și exemple înrudite

Proiectează UI interactiv o singură dată. Livrează același fișier.

Construiește stări, fizică de arc și logică vizual în ExodeUI și redă același fișier în React, SwiftUI, Flutter și altele. Începe gratuit.

Încercați gratuit