useOptimistic — это хук в React, который позволяет показывать немедленную обратную связь по интеракциям пользователей до подтверждения сервером. Он улучшает пользовательский опыт, делая приложения отзывчивыми, пока реальные операции выполняются в фоне.
Синтаксис: const [optimisticState, addOptimistic] = useOptimistic(state, updateFn);
Ключевые преимущества:
Простой пример:
function LikeButton({ postId, likes }) {
const [optimisticLikes, addOptimistic] = useOptimistic(likes, (current, delta) => current + delta);
const handleLike = async () => {
addOptimistic(1); // Немедленное обновление интерфейса
await likePost(postId); // Реальный вызов сервера
};
return <button onClick={handleLike}>❤️ {optimisticLikes}</button>;
}Хук useOptimistic — это мощная функция React, которая помогает создавать отзывчивые пользовательские интерфейсы, показывая немедленную обратную связь по действиям пользователей до завершения операций на сервере. Эта техника, известная как “оптимистичный UI”, делает приложения более быстрыми и отзывчивыми.
Хук принимает два параметра:
Когда вы вызываете функцию addOptimistic:
Идеально подходит для кнопок лайков, форм комментариев и систем реакций, где немедленная обратная связь улучшает пользовательский опыт.
Показывает форму как отправленную немедленно, пока реальная отправка происходит в фоне.
Обновляет количество товаров мгновенно, синхронизируясь с сервером.
Отмечает элементы как выполненные сразу без ожидания подтверждения сервера.
function TodoItem({ todo }) {
const [optimisticTodo, updateOptimistic] = useOptimistic(
todo,
(current, updates) => ({ ...current, ...updates })
);
const toggleComplete = async () => {
updateOptimistic({ completed: !todo.completed });
await updateTodo(todo.id, { completed: !todo.completed });
};
return (
<div>
<input
type="checkbox"
checked={optimisticTodo.completed}
onChange={toggleComplete}
/>
<span>{optimisticTodo.text}</span>
</div>
);
}✅ Лучше всего подходит для:
❌ Следует избегать для:
Хук useOptimistic — отличный инструмент для создания современных, отзывчивых React-приложений. При правильном использовании он значительно улучшает пользовательский опыт, устраняя задержки при обычных взаимодействиях.
Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪