Имеется два отдельных эффекта для обработки каждого случая.
Случай 1: когда компонент монтируется
useEffect(
() => {
// do something
},
[] // no dependency: run once
)
Случай 2: когда переменная изменяется
useEffect(
() => {
if (variable) {
// do something
}
},
[variable] // with dependency: run every time variable changes
)