Якщо ви знайомі з методами життєвого циклу React, ви можете подумати про використанняEffect Hook як компонентDidMount, компонентDidUpdate та компонентWillUnmount.
1.useEffect без другого параменту: Це використовується, коли ми хочемо, щоб щось сталося або коли компонент щойно встановлений, або якщо він був оновлений. Концептуально ми хочемо, щоб це сталося після кожного візуалізації.
2.useEffect з другими параментами як []: Це використовується, коли ми хочемо, щоб щось сталося під час монтажу компонента, якщо воно виконується лише один раз під час монтажу. Це ближче до знайомих компонентаDidMount та компонентаWillUnmount.
3.useEffect з деякими аргументами, переданими у другому параметрі: Це використовується, коли ми хочемо, щоб щось сталося в той момент, коли прамтер передав напр. аргументи змінилися у вашому випадку.
Для отримання додаткової інформації. перевірте тут: https://reactjs.org/docs/hooks-effect.html