Проверяет понимание жизненного цикла React-эффектов и типичных ошибок при работе с WebSocket-соединениями, что важно для real-time приложений.
WebSocket — это постоянное соединение, а useEffect в React может запускаться многократно. Если не управлять жизненным циклом сокета правильно, появляются утечки, дублирующиеся сообщения и лишние соединения на сервере.
useEffect(() => {
const ws = new WebSocket('wss://api.example.com');
ws.onmessage = (e) => setMessages(prev => [...prev, e.data]);
ws.onerror = (e) => console.error(e);
return () => {
ws.onmessage = null;
ws.onerror = null;
ws.close();
};
}, []); // пустые deps — соединение создаётся один разЕсли нужен reconnect, его реализуют внутри эффекта с таймером и флагом отмены, чтобы не пересоздавать сокет при каждом изменении состояния.
WebSocket в useEffect стоит применять с пустыми зависимостями и обязательным cleanup, иначе получите утечки и дублирующиеся соединения. Для сложной логики лучше вынести сокет в отдельный хук или контекст.
Уровень
Рейтинг:
4
Сложность:
6
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию