advanced

Optimistic updates

Показывайте ожидаемый успех сразу, планируя откат, разрешение конфликтов и обратную связь пользователю.

Оптимистичные обновления показывают ожидаемый результат до подтверждения сервером, ускоряя воспринимаемый отклик. При сбое откатите кэш и state и сообщите пользователю. Важно разрешение конфликтов при параллельном редактировании — last-write-wins не всегда приемлем.

Библиотеки дают `onMutate`, снимок предыдущих данных и восстановление при ошибке. Отличайте оптимистичные данные, если возможен частичный успех. Не удаляйте оптимистично без возможности отмены.

На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.

Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.

Компромисс часто между ясностью и переиспользованием или между явными props и удобством.

Чеклист:

  • Снимок данных до оптимистичной записи.
  • Откат при ошибке с сообщением.
  • Политика конфликтов для общих записей.