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
相关推荐
2601_9495936512 分钟前
高级进阶React Native 鸿蒙跨平台开发:LinearGradient 背景渐变与主题切换
react native·react.js·harmonyos
C澒12 分钟前
前端监控系统的最佳实践
前端·安全·运维开发
xiaoxue..15 分钟前
React 手写实现的 KeepAlive 组件
前端·javascript·react.js·面试
摘星编程19 分钟前
在OpenHarmony上用React Native:自定义useHighlight关键词高亮
javascript·react native·react.js
hhy_smile21 分钟前
Class in Python
java·前端·python
小邓吖44 分钟前
自己做了一个工具网站
前端·分布式·后端·中间件·架构·golang
南风知我意9571 小时前
【前端面试2】基础面试(杂项)
前端·面试·职场和发展
LJianK11 小时前
BUG: Uncaught Error: [DecimalError] Invalid argument: .0
前端
2601_949613021 小时前
flutter_for_openharmony家庭药箱管理app实战+用药知识详情实现
android·javascript·flutter
No Silver Bullet1 小时前
Nginx 内存不足对Web 应用的影响分析
运维·前端·nginx