Зробити все це дуже просто - головне не забути про це :)
Для відміни мережевого запиту потрібно:
1. В
useEffect створити екземпляр класу AbortController 2. Передати властивість
signal в поле signal методу fetch (Axios це також підтримує)3. Повернути з
useEffect метод, який викличе abort на екземплярі AbortControllerВсе... Тепер, коли зміняться залежності ефекту, або коли компонент буде демонтовано, асинхронний запит буде відмінено.
З
setTimeout, setInterval, requestAnimationFrame ще простіше. Вони повертають спеціальний id і все що вам треба зробити - викликати clearInterval, clearTimeout, cancelAnimationFrame у функції, яку повертає useEffect. П.М. Планую зробити ефір в якому потоптатися по типових помилках в React. + Можливо зробити розіграш під благодійний збір на майстерню. Але поки це лише в планах.
Бережіть себе.
