Как бороться с утечкой памяти при использовании UseEffect?
из useEffect можно вернуть функцию которая будет вызвана при размонтировании компонента. 
Дальше в ней вы делаете все что нужно чтобы почистить память, отменить запросы и так далее. 
Если запросы "неотменяемые" то при размонтировании помечаете где-нибудь что данные уже не нужны, и при окончании запроса и получении данных просто ничего не делаете
UseEffect просит, пожалуйста не сунь в меня асинхронную функцию
Похоже я уже, не соображаю, и вроде как передаю саму  асинхронную функцию в хук, ну окей если обернуть эту функцию в еще 1 функцию уже не async ошибка не куда не уходит