React的ref用法,ref设置会回调函数

651 阅读1分钟

关于React的ref用法,作为多年老司机直夸妙哉妙哉!!

一般ref有2种常见的用法

1ref保存变量
2let domRef = useRef<HTMLElement>(null); <div ref = {domRef}>demo</div>
3、还有一种比较惊叹的用法,老司机眨眼一看都懵逼! 就是 ref = {setDropdown}

企业微信截图_8bc6e08d-81cb-4cd2-94eb-34625cd7ddf0.png

企业微信截图_83c22872-d3db-46ad-88fb-0eb15b743741.png

ef除了设置成我们常用的,还有一种解释:ref可以设置为一个回调函数,这也是官方强烈推荐的写法,这个函数执行的时机有2种场景 1、组件被挂在后,回调函数被立即执行,回调函数的参数就是该组件的实力; 2、组件被卸载或者原有的ref属性本身发生变化时,回调也会被立即执行,此时回调函数参数为null,以确保内存释放;

然后再回归到我们例子:这个方法挺巧妙的,就说对于ref来说,它是能接受一个函数的 setDropdown,那么同时那个useState的返回第二个参数setDropdown,它本身也是一个函数,它接收你的一个传参(div实例),所以说接收传参以后,这个dropdown这个状态就会更新,那么这个dropdown它就是div实例;

有兴趣可以前了解下哈。