Middle
Podaj przykłady tego, co można zrobić za pomocą hooka useEffect, oprócz wykonywania zapytań do serwera.
sobes.tech AI
Odpowiedź od AI
-
Zarządzanie stanem tytułu strony (
document.title). -
Subskrypcja i odsubskrypcja od zdarzeń przeglądarki (np. zmiana rozmiaru okna, kliknięcia poza elementem):
useEffect(() => { const handleResize = () => { console.log('Rozmiar okna się zmienił'); }; window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); }; }, []); // Pusta tablica zależności: efekt wykonuje się raz podczas montowania i jest czyszczony podczas odmontowania. -
Praca z lokalnym magazynem (czytanie/zapisywanie danych):
useEffect(() => { const savedValue = localStorage.getItem('myInputValue'); if (savedValue) { setInputValue(savedValue); // Zakłada się, że istnieje stan inputValue i funkcja setInputValue } }, []); // Wczytanie wartości podczas montowania. useEffect(() => { localStorage.setItem('myInputValue', inputValue); // Zapis podczas zmiany inputValue. }, [inputValue]); // Zależność od inputValue. -
Inicjalizacja bibliotek lub komponentów zewnętrznych.
-
Konfiguracja i czyszczenie timerów (
setTimeout,setInterval):useEffect(() => { const timerId = setInterval(() => { console.log('Timer działa'); }, 1000); return () => { clearInterval(timerId); // Czyszczenie interwału podczas odmontowania. }; }, []); -
Śledzenie zmian propsów lub stanu i wykonywanie działań w odpowiedzi.
-
Ustawianie fokusu na element podczas montowania komponentu:
useEffect(() => { inputRef.current.focus(); // Zakłada się, że istnieje ref inputRef }, []);