其他分享
首页 > 其他分享> > reactjs —— useCallback:联动

reactjs —— useCallback:联动

作者:互联网

原文:

https://www.react.express/hooks/usecallback

 

useCallback

The useCallback hook lets us memoize functions. The return value will be the same function (comparable with ===) for the lifecycle of the component, unless the dependencies array changes. If the dependencies change, then a new function is returned.

This can be useful for 2 reasons:

In this example, we count the number of times our Logger component runs. Since Logger is wrapped with memo, it'll only run when its props change. In the normalFunction case, the function changes every time we press the button. In the memoizedFunction case, we reuse the same function for 5 button presses, since our count5 variable returns the same value 5 times in a row.

import React, { memo, useCallback, useState } from 'react'

const Logger = memo((props) => {
  props.log()
  return null
})

export default function App() {
  const [count, setCount] = useState(0)
  const count5 = Math.floor(count / 5)

  const memoizedFunction = useCallback(() => {
    console.log('useCallback')
  }, [count5])

  const normalFunction = () => {
    console.log('normal')
  }

  return (
    <>
      <button
        onClick={() => {
          setCount(count + 1)
        }}
      >
        Increment {count}
      </button>
      <Logger log={memoizedFunction} />
      <Logger log={normalFunction} />
    </>
  )
}

  

 

 

 

 

 

标签:function,count,const,memo,reactjs,useCallback,联动,return
来源: https://www.cnblogs.com/panpanwelcome/p/15267788.html