0

コード レビューを行っているときに、次のカスタム フックを見つけました。

import { useRef, useEffect, useCallback } from 'react'

export default function useLastVersion (func) {
  const ref = useRef()
  useEffect(() => {
    ref.current = func
  }, [func])
  return useCallback((...args) => {
    return ref.current(...args)
  }, [])
}

このフックは次のように使用されます。

const f = useLastVersion(() => { // do stuff and depends on props })

基本的に、const f = useCallBack(() => { // do stuff }, [dep1, dep2])これと比較して、依存関係のリストを宣言することを回避しf、依存関係の 1 つが変更されても変更されません。

このコードについてどう考えるべきかわかりません。useLastVersionと比較して使用することの欠点がわかりませんuseCallback

4

2 に答える 2