Playground

Ändere die Eingaben. Sieh zu, wie restate reagiert.

Sieben Experimente führen das echte Paket aus. Der Controller links gehört zu dieser Website; das Beispiel rechts bekommt nur Props, sein Code ist also genau das, was du schreiben würdest.

Controller — nur für die Websiteprops — die BrückeBeispiel — der Code, den du kopierst
01

Zwei Bildschirme, ein Store

Mehrere Komponenten brauchen denselben Wert. Deklariere ihn einmal und lies ihn überall.

Worauf du achten solltest
  • Drück den Schritt-Button: Alle Leser zeigen gleichzeitig die neue Zahl.
  • Ändere die Zahl der Leser: Ein neuer Leser startet beim aktuellen Wert.

Beispiel wird vorbereitet…

Loslegen
02

Nur rendern, was sich geändert hat

Ein großer Store sollte nicht bei jeder Änderung jede Komponente neu rendern.

Worauf du achten solltest
  • Nachricht bearbeiten: Nur die Karte mit dem ganzen Store rendert.
  • Artikel hinzufügen: Artikel und Zusammenfassung rendern; die Gutschein-Karte bleibt ruhig.
  • Schalte shallow aus: Die Zusammenfassung rendert bei jeder Änderung, weil ihr selector jedes Mal ein neues Objekt zurückgibt.

Beispiel wird vorbereitet…

Nur abonnieren, was du brauchst
03

Viele Änderungen, eine Benachrichtigung

Zwei Stores nacheinander zu aktualisieren lässt einen Abonnenten einen halbfertigen Zustand sehen.

Worauf du achten solltest
  • Getrennt leeren: Der Abonnent sieht 0 Artikel zusammen mit dem alten Gutschein.
  • Mit batch leeren: Der Abonnent läuft einmal, nachdem sich beide Stores geändert haben.

Beispiel wird vorbereitet…

Nur abonnieren, was du brauchst
04

Speichern, wann du willst

Bearbeiten ändert den Arbeitsspeicher. Speichern ist eine explizite Aktion, und der Status zeigt, was gerade passiert.

Worauf du achten solltest
  • Tippen: dirty schaltet sich ein, geschrieben wird noch nichts.
  • Latenz erhöhen und speichern: operation zeigt save, solange der Schreibvorgang läuft.
  • Erneut abspielen: Der gespeicherte Entwurf wird aus IndexedDB wiederhergestellt.

Beispiel wird vorbereitet…

Speichern, wann du willst
05

Schnell tippen, einmal schreiben

Bei jedem Tastendruck zu speichern überflutet den Speicher. autoSave wartet auf eine Pause.

Worauf du achten solltest
  • Tipp einen Satz: Die Änderungen steigen schnell, die Schreibvorgänge wachsen nach jeder Pause nur um eins.
  • Wähle „Bei jeder Änderung“: Jede Änderung schreibt, aber eine Rückkehr zum gespeicherten Wert schreibt nichts.

Beispiel wird vorbereitet…

Speichern, wann du willst
06

Fehlerlabor

Mach den Speicher langsam, fehlerhaft oder unverfügbar und sieh zu, wie restate deine Daten behält und das Problem meldet.

Worauf du achten solltest
  • Latenz erhöhen und dreimal speichern: Die Anfragen teilen sich einen Schreibvorgang, daher bleibt pending bei 1 und alle drei Ergebnisse kommen zusammen an.
  • Fehlschlagende Schreibvorgänge einschalten und speichern: dirty bleibt true und error zeigt die Ursache.
  • Speicher unverfügbar machen: Speichern wird mit STORAGE_UNAVAILABLE abgelehnt, während das Bearbeiten weiter funktioniert.

Beispiel wird vorbereitet…

Zuverlässigkeit by Design
07

State pro Dokument

Jedes geöffnete Dokument braucht eigenen State, der beim Schließen des Dokuments freigegeben wird.

Worauf du achten solltest
  • Tipp in Dokument A, dann in B: Jedes behält seinen eigenen Text.
  • Schließ Dokument A und öffne es wieder: Es startet leer, weil sein Scope zerstört wurde.

Beispiel wird vorbereitet…

State, der einer Komponente gehört

Doku durchsuchen

Durchsucht Titel, Beschreibungen und Text aller Guides.