Песочница

Меняйте входные данные. Смотрите, как отвечает restate.

Семь экспериментов запускают настоящий пакет. Контроллер слева принадлежит этому сайту; пример справа получает только props, поэтому его код — ровно то, что написали бы вы.

Контроллер — только для сайтаprops — мостПример — код, который вы копируете
01

Два экрана, одно хранилище

Нескольким компонентам нужно одно и то же значение. Объявите его один раз и читайте где угодно.

На что смотреть
  • Нажмите кнопку шага: все читатели одновременно покажут новое число.
  • Измените число читателей: новый читатель стартует с текущего значения.

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

Начало
02

Перерисовывается только изменившееся

Большое хранилище не должно перерисовывать каждый компонент при каждой правке.

На что смотреть
  • Измените открытку: перерисовывается только карточка всего хранилища.
  • Добавьте товар: перерисовываются товары и итог; карточка купона не трогается.
  • Выключите shallow: итог перерисовывается при каждой правке, потому что его selector каждый раз возвращает новый объект.

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

Подписывайтесь только на нужное
03

Много изменений, одно уведомление

Если обновлять два хранилища по очереди, подписчик может увидеть промежуточное состояние.

На что смотреть
  • Очистить по отдельности: подписчик видит 0 товаров вместе со старым купоном.
  • Очистить через batch: подписчик срабатывает один раз, после того как изменились оба хранилища.

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

Подписывайтесь только на нужное
04

Сохраняйте, когда решите

Правка меняет память. Сохранение — явное действие, а статус показывает, что происходит.

На что смотреть
  • Печатайте: dirty включается, но пока ничего не записывается.
  • Увеличьте задержку и сохраните: operation показывает save, пока идёт запись.
  • Повторите пример: сохранённый черновик восстанавливается из IndexedDB.

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

Сохраняйте, когда решите
05

Печатайте быстро, пишите один раз

Сохранение на каждое нажатие клавиши перегружает хранилище. autoSave ждёт паузы.

На что смотреть
  • Наберите фразу: правки растут быстро, а записи прибавляются по одной после каждой паузы.
  • Выберите «При каждой правке»: каждая правка записывается, но возврат к сохранённому значению ничего не пишет.

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

Сохраняйте, когда решите
06

Лаборатория сбоев

Сделайте хранилище медленным, сломанным или недоступным и посмотрите, как restate сохраняет ваши данные и сообщает о проблеме.

На что смотреть
  • Увеличьте задержку и сохраните три раза: запросы делят одну запись, поэтому pending остаётся 1, а три результата приходят вместе.
  • Включите сбой записи и сохраните: dirty остаётся true, а error показывает причину.
  • Сделайте хранилище недоступным: сохранение отклоняется с STORAGE_UNAVAILABLE, а правка продолжает работать.

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

Надёжность by design
07

Состояние для отдельного документа

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

На что смотреть
  • Напишите в документе A, затем в B: каждый хранит свой текст.
  • Закройте документ A и откройте снова: он начинается пустым, потому что его область уничтожена.

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

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

Поиск по документации

Поиск по заголовкам, описаниям и тексту всех руководств.