# 注意
useCallback(fn,[dep])
这里 主要是用作缓存函数
<APP>
const [count,setCount] = useState(0)
const add = ()=>{}
return <>
{count}
<button onClick={()=>setCount(count + 1)} />
<Child >
</Child>
</>
</APP>
# 这里 定义一个父组件app 嵌套子组件child
1. 如果没使用useMemo包裹子组件 父组件setState 子组件都会重新渲染
2.如果子组件使用useMemo(<Child>) 那么 父组件重新渲染 子组件会依赖父组件传递给 子组件的参数是否变化
如果发生变化子组件 会重新渲染 如果没发生变化 那么子组件就不会重新渲染
3. 如果子组件被传递 一个函数
<Child add={add}>
</Child>
这样的话 只要父组件setState 那么父组件都会重新渲染 生成一个新的函数传递给子组件,所以子组件也会重新渲染
4. 如果这个函数被useCallback 包裹
const add = useCallback(()=>{},[])
那么只会根据依赖项,重新改变,如果没有依赖项那么只会生成一个并进行缓存
useMemo,useCallback理解
最新推荐文章于 2025-04-20 18:39:06 发布