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 →
Αρχιτεκτονική Λογικής11 λεπτά ανάγνωση·Από την ομάδα του ExodeUI

Διεπαφή χρήστη State Machine: Δημιουργία ντετερμινιστικών διεπαφών χωρίς σφάλματα

Μάθετε πώς οι μηχανές οπτικής κατάστασης εξαλείφουν τις αδύνατες καταστάσεις διεπαφής χρήστη, απλοποιούν πολύπλοκα διαδραστικά στοιχεία και δημιουργούν ντετερμινιστικές διεπαφές χωρίς σφάλματα στο React.

Άμεση Περίληψη & Ορισμός

Core Takeaway

Μια μηχανή κατάστασης διεπαφής χρήστη είναι ένα μαθηματικό μοντέλο που περιγράφει όλες τις έγκυρες καταστάσεις που μπορεί να καταλάβει ένα στοιχείο διεπαφής και τις σαφείς μεταβάσεις μεταξύ αυτών των καταστάσεων που ενεργοποιούνται από συμβάντα χρήστη ή συνθήκες συστήματος. Οι μηχανές κατάστασης εξαλείφουν ολόκληρες κατηγορίες σφαλμάτων διεπαφής χρήστη καθιστώντας τις "αδύνατες καταστάσεις αδύνατες" — ο κύκλος φόρτωσης και το σημάδι ελέγχου επιτυχίας δεν μπορούν να εμφανιστούν ταυτόχρονα, εάν το μηχάνημα κατάστασης σας απαγορεύει αυτόν τον συνδυασμό.

Η κατάσταση του προβλήματος λύνουν οι μηχανές

Τα περισσότερα σφάλματα διεπαφής χρήστη προέρχονται από στοιχεία που μπορούν να εισέλθουν σε λογικά αδύνατες καταστάσεις. Ένα κλασικό παράδειγμα: ένα κουμπί υποβολής φόρμας που δεν έχει ρητό μοντέλο κατάστασης μπορεί ταυτόχρονα να βρίσκεται σε κατάσταση "φόρτωσης" και κατάσταση "απενεργοποίησης" από δύο ξεχωριστές σημαίες boolean. Μια μηχανή κατάστασης το αποτρέπει αυτό απαιτώντας το εξάρτημα να βρίσκεται πάντα σε ακριβώς μια καλά καθορισμένη κατάσταση ανά πάσα στιγμή.

  • "Boolean flag hell" — isLoading, isDisabled, isError, isSuccess όλα σε διένεξη
  • Συνθήκες αγώνα όπου οι γρήγοροι χρήστες ενεργοποιούν πολλές καταστάσεις ταυτόχρονα
  • Σφάλματα μετάβασης όπου τα κινούμενα σχέδια ξεκινούν από λανθασμένες ενδιάμεσες θέσεις
  • Γνωστικό φορτίο προγραμματιστή από την παρακολούθηση n × n συνδυασμών σημαιών κατά την αναθεώρηση κώδικα

Βασικές έννοιες μηχανών κατάστασης

Οι μηχανές καταστάσεων αποτελούνται από ένα πεπερασμένο σύνολο καταστάσεων, ένα λεξιλόγιο γεγονότων που μπορούν να ενεργοποιήσουν μεταβάσεις και συνθήκες προστασίας που καθορίζουν εάν επιτρέπεται μια μετάβαση.

κράτη

Κάθε κατάσταση αντιπροσωπεύει μια συγκεκριμένη συνθήκη του στοιχείου. Παράδειγμα για ένα στοιχείο ανάκτησης δεδομένων: αδράνεια, φόρτωση, επιτυχία, σφάλμα, ανανέωση.

Γεγονότα / Μεταβάσεις

Τα συμβάντα ενεργοποιούν αλλαγές κατάστασης. Το "SUBMIT" μεταβαίνει μια φόρμα από αδράνεια σε φόρτωση. Το "SUCCESS" μεταβαίνει από τη φόρτωση στην επιτυχία. Το "ERROR" μεταβαίνει από τη φόρτωση στο σφάλμα.

Φρουροί

Συνθήκες που πρέπει να ισχύουν για μια μετάβαση στη φωτιά. Ένα συμβάν "SUBMIT" μπορεί να ενεργοποιήσει τη μετάβαση σε αδράνεια → φόρτωση μόνο εάν περάσει το προστατευτικό επικύρωσης φόρμας.

Πλαίσιο / Εκτεταμένη κατάσταση

Βοηθητικά δεδομένα που φέρει το μηχάνημα (τιμές εισόδου χρήστη, μηνύματα σφάλματος, φορτωμένα δεδομένα) μαζί με το όνομα της τρέχουσας κατάστασης.

Μηχανές κατάστασης στο ExodeUI

Το ExodeUI παρέχει έναν επεξεργαστή κατάστασης μηχανής οπτικού κόμβου-γραφήματος. Σχεδιάζετε καταστάσεις ως κύκλους, τις συνδέετε με βέλη με ετικέτα που αντιπροσωπεύουν συμβάντα και επισυνάπτετε κινούμενα σχέδια και αλλαγές οπτικών ιδιοτήτων σε κάθε κατάσταση. Το μηχάνημα αποθηκεύεται στο αρχείο .exode: στο React το φορτώνετε με το ExodeUICanvas και το οδηγείτε μέσω εισόδων και στο Swift μέσω του ExodeUIController.

Απόσπασμα υλοποίησης παραγωγής

Διαδραστική Υλοποίηση Στοιχείων
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)}
    />
  );
}

Συχνές Ερωτήσεις

Σχετικοί Οδηγοί & Παραδείγματα

Σχεδιάστε διαδραστικό UI μία φορά. Παραδώστε το ίδιο αρχείο.

Δημιουργήστε καταστάσεις, φυσική ελατηρίων και λογική οπτικά στο ExodeUI και αναπαράγετε το ίδιο αρχείο σε React, SwiftUI, Flutter και άλλα. Ξεκινήστε δωρεάν.

Δοκιμάστε δωρεάν