Middle
Дайте примери за това какво може да се направи с hook useEffect, освен изпращане на заявки към сървъра.
sobes.tech AI
Отговор от AI
-
Управление на състоянието на заглавието на страницата (
document.title). -
Абониране и отписване от събития на браузъра (например, промяна на размера на прозореца, кликвания извън елемента):
useEffect(() => { const handleResize = () => { console.log('Размерът на прозореца се промени'); }; window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); }; }, []); // Празен масив за зависимости: ефектът се изпълнява веднъж при монтиране и се почистване при демонтиране. -
Работа с локално хранилище (четене/запис на данни):
useEffect(() => { const savedValue = localStorage.getItem('myInputValue'); if (savedValue) { setInputValue(savedValue); // Предполага се, че има състояние inputValue и функция setInputValue } }, []); // Зареждане на стойността при монтиране. useEffect(() => { localStorage.setItem('myInputValue', inputValue); // Запазване при промяна на inputValue. }, [inputValue]); // Зависимост от inputValue. -
Инициализация на външни библиотеки или компоненти.
-
Настройка и почистване на таймери (
setTimeout,setInterval):useEffect(() => { const timerId = setInterval(() => { console.log('Таймерът работи'); }, 1000); return () => { clearInterval(timerId); // Почистване на интервала при демонтиране. }; }, []); -
Следене на промени в пропсове или състояние и изпълнение на действия в отговор.
-
Фокусиране върху елемент при монтиране на компонента:
useEffect(() => { inputRef.current.focus(); // Предполага се, че има ref inputRef }, []);