react hooks 额外的钩子函数

本文介绍了React中几个Hooks的使用与性能优化。useMemo可减少渲染耗时,通过记忆值优化性能,数组变化时才重新执行;useCallback返回函数本身,与useMemo有等价形式;useRef可返回可变ref对象用于访问DOM,还提及useImperativeMethods和useLayoutEffect的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

useMemo 性能优化

减少渲染耗时

记忆值

对象深拷贝

const momoizedValue = useMemo(callback,array)

1.callback 函数 处理计算逻辑

2.array 数组发生改变的时候 useMemo 才会重新执行

返回值是一个记忆值 是callback的返回值

数组变化 记忆值才会返回

const obj1 = {id:"12",name:"jack"}

const obj2 = {id:"14",name:"ben",age:23}

const memoizedValue =useMemo(()=>Object.assign(obj1,obj2),[obj1,obj2])

// 第二个参数是数组 代码obj1改变 或者obj2改变的时候 记忆值才会返回

类似immutable优化

不要在useMemo处理副作用的逻辑

 

useCallback . 性能优化

const momoizedValue = useCallback(callback,array)

//和useMemo 返回值不同 返回值不是callback返回值 是函数本身

得到的是一个函数

useCallback(fn,inputs) 等价于 useMemo(()=>fn,inputs)

const memoizedValue =useCallback(()=>Object.assign(obj1,obj2),[obj1,obj2])

// 调用 memoizedFn().name

 

等价于 useMemo(()=>()=>Object.assign(obj1,obj2),[obj1,obj2]);

 

 

useRef 使用ref对象 返回一个可变的ref对象 current属性被初始化为传递的参数

通过ref对象访问dom

const inputE1 = useRef(null)

// useRef()

const onInput=()=>{

console.log(inputE1.current.value)

}

 

return(

<div>

<input ref = {inputE1} type='text' / >

<button onClick={onInput}>获取input的值</button>

</div>

)

 

// 后面两个钩子用的少

useImperativeMethods

//扩展ref 方便ref 和父组件交互

useLayoutEffect 阻止页面渲染

所有dom变化后同步触发

浏览器绘制前 做一些事情

多数情况用useEffect

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值