Выбор ответа Senior Архитектура состояния обновлено

Оптимистичное обновление

Вопрос

Какой подход правильно реализует оптимистичный лайк?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сразу показать новое значение, при ошибке откатить и сообщить. Оптимистичное обновление: UI меняется сразу, но предыдущее значение сохраняется, и при ошибке состояние откатывается с уведомлением.

Варианты ответа

  1. Ждать ответа сервера и только потом менять счётчик на экране
  2. Сразу показать новое значение, при ошибке откатить и сообщитьправильный ответ
  3. Сразу показать новое значение, ошибку не обрабатывать: лайки проходят
  4. Менять счётчик только в localStorage, а на сервер слать раз в час

Разбор

Оптимистичное обновление: UI меняется сразу, но предыдущее значение сохраняется, и при ошибке состояние откатывается с уведомлением. В TanStack Query это onMutate (снимок и подмена), onError (откат), onSettled (инвалидация). В React 19 для этого есть useOptimistic. Ожидание ответа это пессимистичный подход. Без отката интерфейс будет врать. localStorage не синхронизирует сервер.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.