useMemo,useCallback理解

# 注意

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(()=>{},[])
那么只会根据依赖项,重新改变,如果没有依赖项那么只会生成一个并进行缓存
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值