С появлением хуков в react многие перешли на написание компонентов в функциональном стиле, но появились некоторые пробелы в документации. Один из таких пробелов — как выполнить функцию во время «демонтажа» компонента, т.е. внутри как бы componentWillMount.
import React, { useCallback, useEffect } from 'react' export const Example = () => { const fn = useCallback(() => { console.log('Unmount') }, []) useEffect(()=>{ /** * Верните функцию которая * должна выполниться на Unmount */ return fn }, [fn]) return // JSX }
Не используйте другие зависимости внутри useEffect, который возвращает функцию для Unmount
Некоторое время назад я заметил, что стала популярной библиотека react-use. Она представляет собой набор различных хуков, содержит и useUnmount
.
// установите библиотеку npm i react-use
import {useUnmount} from 'react-use'; const Demo = () => { useUnmount(() => alert('UNMOUNTED')); return null; };
Это очень простое и компактное API.
Удачного кодинга