Plac zabaw

Zmieniaj dane wejściowe. Obserwuj, jak odpowiada restate.

Siedem eksperymentów uruchamia prawdziwy pakiet. Kontroler po lewej należy do tej strony; przykład po prawej dostaje tylko props, więc jego kod jest dokładnie tym, co wpiszesz u siebie.

Kontroler — tylko dla stronyprops — mostPrzykład — kod, który kopiujesz
01

Dwa ekrany, jeden magazyn

Kilka komponentów potrzebuje tej samej wartości. Zadeklaruj ją raz i odczytuj wszędzie.

Na co patrzeć
  • Naciśnij przycisk kroku: wszyscy czytelnicy pokazują nową liczbę w tej samej chwili.
  • Zmień liczbę czytelników: nowy czytelnik zaczyna od bieżącej wartości.

Przygotowywanie przykładu…

Zacznij
02

Renderuj tylko to, co się zmieniło

Duży magazyn nie powinien renderować każdego komponentu przy każdej edycji.

Na co patrzeć
  • Edytuj kartkę: renderuje się tylko karta całego magazynu.
  • Dodaj produkt: renderują się produkty i podsumowanie; karta kuponu zostaje bez zmian.
  • Wyłącz shallow: podsumowanie renderuje się przy każdej edycji, bo jego selector za każdym razem zwraca nowy obiekt.

Przygotowywanie przykładu…

Subskrybuj tylko to, czego potrzebujesz
03

Wiele zmian, jedno powiadomienie

Aktualizowanie dwóch magazynów po kolei pozwala subskrybentowi zobaczyć stan w połowie zmiany.

Na co patrzeć
  • Wyczyść osobno: subskrybent widzi 0 produktów razem ze starym kuponem.
  • Wyczyść przez batch: subskrybent uruchamia się raz, po zmianie obu magazynów.

Przygotowywanie przykładu…

Subskrybuj tylko to, czego potrzebujesz
04

Zapisuj, kiedy zdecydujesz

Edycja zmienia pamięć. Zapis to jawna akcja, a status pokazuje, co się dzieje.

Na co patrzeć
  • Pisz: dirty się włącza i na razie nic nie jest zapisywane.
  • Zwiększ opóźnienie i zapisz: operation pokazuje save podczas zapisu.
  • Odtwórz ponownie: zapisany szkic zostaje przywrócony z IndexedDB.

Przygotowywanie przykładu…

Zapisuj, kiedy zdecydujesz
05

Pisz szybko, zapisuj raz

Zapis przy każdym naciśnięciu klawisza zalewa pamięć. autoSave czeka na przerwę.

Na co patrzeć
  • Wpisz zdanie: edycje rosną szybko, a zapisy przybywają o jeden po każdej przerwie.
  • Wybierz „Przy każdej edycji”: każda edycja jest zapisywana, ale powrót do zapisanej wartości niczego nie zapisuje.

Przygotowywanie przykładu…

Zapisuj, kiedy zdecydujesz
06

Laboratorium awarii

Spraw, by pamięć była wolna, zepsuta lub niedostępna, i zobacz, jak restate chroni twoje dane i zgłasza problem.

Na co patrzeć
  • Zwiększ opóźnienie i zapisz trzy razy: żądania dzielą jeden zapis, więc pending zostaje na 1, a trzy wyniki przychodzą razem.
  • Włącz błędy zapisu i zapisz: dirty zostaje true, a error pokazuje przyczynę.
  • Ustaw pamięć jako niedostępną: zapis jest odrzucany z STORAGE_UNAVAILABLE, a edycja działa dalej.

Przygotowywanie przykładu…

Niezawodność by design
07

Stan dla każdego dokumentu

Każdy otwarty dokument potrzebuje własnego stanu, zwalnianego przy zamknięciu dokumentu.

Na co patrzeć
  • Napisz coś w dokumencie A, potem w B: każdy zachowuje swój tekst.
  • Zamknij dokument A i otwórz ponownie: zaczyna pusty, bo jego zakres został zniszczony.

Przygotowywanie przykładu…

Stan należący do komponentu

Szukaj w dokumentacji

Przeszukuj tytuły, opisy i treść wszystkich przewodników.