Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
useEffect — это хук в React, который позволяет выполнять побочные эффекты в функциональных компонентах. Побочные эффекты могут включать операции, такие как запросы к серверу, подписки на события, манипуляции с DOM и многое другое.
useEffect выполняется после того, как компонент отрисован. Он позволяет вам производить действия, которые не должны блокировать рендеринг, такие как асинхронные запросы или обновления, которые должны происходить после рендера.
useEffect(() => {
// Код побочного эффекта
}, [dependencies]);
import { useState, useEffect } from "react";
function Timer() {
const [seconds, setSeconds] = useState(0);
// Запускаем таймер при монтировании компонента
useEffect(() => {
const intervalId = setInterval(() => {
setSeconds((prevSeconds) => prevSeconds + 1);
}, 1000);
// Очистка эффекта, когда компонент размонтирован
return () => clearInterval(intervalId);
}, []); // Пустой массив — эффект выполнится только один раз
return (
<div>
<p>Прошло времени: {seconds} секунд</p>
</div>
);
}
import { useState, useEffect } from "react";
function FetchData() {
const [data, setData] = useState(null);
const [url, setUrl] = useState("https://api.example.com/data");
useEffect(() => {
const fetchData = async () => {
const response = await fetch(url);
const result = await response.json();
setData(result);
};
fetchData();
}, [url]); // Хук сработает, когда изменится значение `url`
return (
<div>
<button onClick={() => setUrl("https://api.example.com/new-data")}>
Загрузить новые данные
</button>
<p>{data ? JSON.stringify(data) : "Загрузка..."}</p>
</div>
);
}
Если хук требует очистки (например, при работе с подписками или таймерами), можно вернуть функцию из useEffect:
useEffect(() => {
const intervalId = setInterval(() => {
console.log("Таймер работает...");
}, 1000);
return () => clearInterval(intervalId); // Очистка таймера
}, []);
Использование useEffect:
useEffect позволяет обрабатывать побочные эффекты в функциональных компонентах, улучшая управление состоянием и ресурсами в React-приложениях.