Пясъчник

Променяйте входа. Вижте как отговаря restate.

Седем експеримента изпълняват истинския пакет. Контролерът вляво принадлежи на този сайт; примерът вдясно получава само props, така че кодът му е точно това, което бихте написали.

Контролер — само за сайтаprops — мостътПример — кодът, който копирате
01

Два екрана, един store

Няколко компонента се нуждаят от една и съща стойност. Декларирайте я веднъж и я четете навсякъде.

Какво да наблюдавате
  • Натиснете бутона за стъпка: всички четци показват новото число в един и същ момент.
  • Променете броя на четците: нов четец започва от текущата стойност.

Подготовка на примера…

Начало
02

Рендерирайте само промененото

Голям store не бива да пререндерира всеки компонент при всяка промяна.

Какво да наблюдавате
  • Редактирайте картичката: пререндерира се само картата на целия store.
  • Добавете артикул: пререндерират се артикулите и обобщението; картата на купона остава.
  • Изключете shallow: обобщението се пререндерира при всяка промяна, защото неговият selector всеки път връща нов обект.

Подготовка на примера…

Абонирайте се само за нужното
03

Много промени, едно известие

Обновяването на два store един след друг позволява на абонат да види наполовина готово състояние.

Какво да наблюдавате
  • Изчисти поотделно: абонатът вижда 0 артикула заедно със стария купон.
  • Изчисти с batch: абонатът се изпълнява веднъж, след като и двата store са се променили.

Подготовка на примера…

Абонирайте се само за нужното
04

Запазвайте, когато решите

Редакцията променя паметта. Запазването е изрично действие, а статусът показва какво се случва.

Какво да наблюдавате
  • Пишете: dirty се включва и още нищо не се записва.
  • Увеличете забавянето и запазете: operation показва save, докато трае записът.
  • Пуснете отново: запазената чернова се възстановява от IndexedDB.

Подготовка на примера…

Запазвайте, когато решите
05

Пишете бързо, записвайте веднъж

Запазването при всяко натискане на клавиш претоварва хранилището. autoSave изчаква пауза.

Какво да наблюдавате
  • Напишете изречение: промените растат бързо, а записите се увеличават с един след всяка пауза.
  • Изберете „При всяка промяна“: всяка промяна се записва, но връщането към запазената стойност не записва нищо.

Подготовка на примера…

Запазвайте, когато решите
06

Лаборатория за повреди

Направете хранилището бавно, повредено или недостъпно и вижте как restate пази данните ви и съобщава за проблема.

Какво да наблюдавате
  • Увеличете забавянето и запазете три пъти: заявките споделят един запис, така че pending остава 1, а трите резултата пристигат заедно.
  • Включете неуспешни записи и запазете: dirty остава true, а error показва причината.
  • Направете хранилището недостъпно: запазването се отхвърля със STORAGE_UNAVAILABLE, докато редакцията продължава да работи.

Подготовка на примера…

Надеждност by design
07

Състояние за всеки документ

Всеки отворен документ се нуждае от собствено състояние, което се освобождава при затваряне на документа.

Какво да наблюдавате
  • Пишете в документ A, после в B: всеки пази своя текст.
  • Затворете документ A и го отворете отново: започва празен, защото scope-ът му е унищожен.

Подготовка на примера…

Състояние, което принадлежи на компонент

Търсене в документацията

Търсене в заглавията, описанията и текста на всички ръководства.