Проверяет понимание стратегий отображения промежуточных состояний в пользовательском интерфейсе, когда событие сохранено, но ещё не применено к состоянию системы.
В системах, использующих event sourcing или асинхронную обработку, событие может быть сохранено в журнале, но ещё не обработано и не применено к текущему состоянию. Пользователь, отправив действие, ожидает немедленного результата, но система может задержать применение. Если просто ничего не показывать, пользователь решит, что действие не сработало, и повторит его, создавая дубликаты.
function SaveButton({ onSave, isPending }) {
return (
<button onClick={onSave} disabled={isPending}>
{isPending ? 'Сохранено, применяется...' : 'Сохранить'}
</button>
);
}
// Использование с хуком состояния
const [isPending, setPending] = useState(false);
const handleSave = async () => {
setPending(true);
await saveEvent(); // сохраняем событие
// не ждём применения, показываем статус
setPending(false); // или оставляем true до подтверждения
};Правильное отображение промежуточных состояний критично для UX в асинхронных системах. Используйте оптимистичные обновления с явными индикаторами статуса, чтобы избежать путаницы и повторных действий. Это особенно важно в финансовых, заказных и collaborative-приложениях, где задержка применения может быть значительной.