useUnmount
作用
组件卸载(unmount)时执行的 Hook,用于在组件卸载时执行一些清理操作
原理
useEffect
可以在组件渲染后实现各种不同的副作用。有些副作用可能需要清除,所以需要返回一个函数,这个函数会在组件卸载的时候执行。
源码
ts
import { useEffect } from 'react'
import useLatest from '../useLatest'
import { isFunction } from '../utils'
import isDev from '../utils/isDev'
const useUnmount = (fn: () => void) => {
if (isDev) {
if (!isFunction(fn)) {
console.error(`useUnmount expected parameter is a function, got ${typeof fn}`)
}
}
const fnRef = useLatest(fn)
useEffect(
() => () => {
fnRef.current()
},
[],
)
}
export default useUnmount