为什么React不把他们设为默认方法
想要做到就要有更多的学习,你知道为什么React不把他们设为默认方法#useEvent是一个刚刚提案的原生Hook,还处于RFC。现在我们就一起来讨论下

怎样使用useEvent
useEvent就是为了解决在onClick回调函数中需要读取当前键入的文本text的问题。通过useCallback返回一个memoized回调函数,并用deps来控制它何时刷新。为了解决回调函数总是重新创建而造成的性能损耗,可以使用useEvent方法,它会返回一个相同的函数引用,哪怕text发生变化。通过useRef来保存回调函数handler到handlerRef.current,再在useCallback中从handlerRef.current来取函数再调用,简单来说就可以跳出循环,打破僵局。
useEvent给onClick裹上可以同时达到以下两个效果:引用不变,拿到恰当的值。这是通过在useRef中保存属性,为了确保属性会在渲染之前被复制,可以使用useLayoutEffect,你也可以使用useEffect,但是它是异步的。使用useCallback返回一个memoized回调函数,deps为[]表明不会再次更新。这样就可以保证useCallback包裹后的memoized函数从handlerRef.current中获取函数,并且deps为[],这就表明不会再次更新,从而实现了相同的函数引用。
总而言之,用useEvent解决了一些场景中会出现的不想让A因为B变化而总是重新加载,但是又因为要拿到B恰当的值,所以deps中必须B,导致不得不重新加载的问题。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7296.html
