Middle+
Cos'è un array di dipendenze in useEffect? Cosa succede se si passa un array vuoto o se non si passa affatto?
sobes.tech AI
Risposta dell'AI
В React хук useEffect принимает вторым аргументом массив зависимостей — список значений, при изменении которых эффект будет повторно выполняться.
- Если передать пустой массив
[], эффект выполнится только один раз — после первого рендера компонента (аналогичноcomponentDidMount). - Если не передавать массив зависимостей вовсе, эффект будет выполняться после каждого рендера компонента, что может привести к нежелательным повторным вызовам.
Пример:
useEffect(() => {
console.log('Выполнится один раз');
}, []);
useEffect(() => {
console.log('Выполняется после каждого рендера');
});
useEffect(() => {
console.log('Выполнится при изменении count');
}, [count]);
Таким образом, массив зависимостей контролирует, когда именно должен срабатывать эффект, оптимизируя работу компонента.