useEffect
— это React Hook, который позволяет синхронизировать компонент с изменениями в состоянии или свойствах компонента. Он принимает два аргумента, функцию обратного вызова и массив зависимостей. Функция обратного вызова выполняется при монтировании, обновлении или размонтировании компонента на основе зависимостей, указанных в массиве. Вот пример:
import React, { useState, useEffect } from 'react'; function App() { const [count, setCount] = useState(0); useEffect(() => { console.log(`Count changed to ${count}`); }, [count]); return ( <div> <h1>Count: {count}</h1> <button onClick={() => setCount(count + 1)}>Increment</button> </div> ); } export default App;
В этом примере у нас есть простой счетчик, который отображает значение счетчика, и кнопка, которая увеличивает значение счетчика при нажатии. Мы используем хук useState
для определения состояния счетчика и функцию setCount
для его обновления.
Мы также используем хук useEffect
для регистрации сообщения в консоли всякий раз, когда значение счетчика изменяется. Мы передаем массив [count]
в качестве второго аргумента useEffect
, что означает, что функция обратного вызова будет выполняться только при изменении значения счетчика.
Таким образом, useEffect
помогает нам отслеживать изменения состояния в нашем компоненте и выполнять побочные эффекты, такие как обновление DOM или получение данных из API, последовательным и предсказуемым образом.