Skip to content

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

如有转载或 CV 的请标注本站原文地址