крючок useEffect принимает второй аргумент - массив.Если какое-либо значение в этом массиве изменится, то ловушка useEffect будет запущена снова
Если вы оставите этот массив пустым, useEfect будет работать только при монтировании компонента - (в основном, как метод жизненного цикла ComponentDidMount)
И если вы пропуститеэтот массив useEffect будет запускаться каждый раз, когда компонент перерисовывает
Например:
useEffect запускается только один раз, когда компонент монтируется:
useEffect(() => {
//code
},[]);
useEffect запускается каждый раз, когда компонент перерисовывается:
useEffect(() => {
//code
});
useEffect запускается только при изменении некоторых из этих переменных:
let a = 1;
let b = 2;
useEffect(() => {
//code
},[a,b]);
Кроме того, если вы установите оператор return в хуке useEffect, он должен возвращать функцию, и эта функция всегда будетвыполнить перед использованиемEffect render
useEffect(() => {
// code
return () => {
console.log("You will se this before useEffect hook render");
};
}, []);