react 之 useCallback

简单讲述下useCallback的使用方法,useCallback也是用来缓存的,只不过是用于做函数缓存

javascript 复制代码
// useCallback

import { memo, useCallback, useState } from "react"


const Input = memo(function Input ({ onChange }) {
  console.log('子组件重新渲染了')
  return <input type="text" onChange={(e) => onChange(e.target.value)} />
})

function App () {
  // 传给子组件的函数
  const changeHandler = useCallback((value) => console.log(value), [])
  // 触发父组件重新渲染的函数
  const [count, setCount] = useState(0)
  return (
    <div className="App">
      {/* 把函数作为prop传给子组件 */}
      <Input onChange={changeHandler} />
      <button onClick={() => setCount(count + 1)}>{count}</button>
    </div>
  )
}

export default App
相关推荐
mCell8 小时前
使用 useSearchParams 同步 URL 和查询参数
前端·javascript·react.js
mCell10 小时前
前端路由详解:Hash vs History
前端·javascript·vue-router
海上彼尚10 小时前
无需绑卡的海外地图
前端·javascript·vue.js·node.js
1024肥宅10 小时前
手写 call、apply、bind 的实现
前端·javascript·ecmascript 6
科杰智能制造11 小时前
纯前端html、js实现人脸检测和表情检测,可直接在浏览器使用
前端·javascript·html
每天吃饭的羊11 小时前
组件库的有些点击事件是name-click这是如何分装de
前端·javascript·vue.js
x***010611 小时前
SpringSecurity+jwt实现权限认证功能
android·前端·后端
1024肥宅11 小时前
防抖(Debounce)
前端·javascript·ecmascript 6
1024肥宅12 小时前
节流(Throttle)
前端·javascript·ecmascript 6
大怪v12 小时前
【Virtual World 02】两点一线!!!
javascript·css·html