关于React的ref用法,作为多年老司机直夸妙哉妙哉!!
一般ref有2种常见的用法
1、ref保存变量
2、let domRef = useRef<HTMLElement>(null); <div ref = {domRef}>demo</div>
3、还有一种比较惊叹的用法,老司机眨眼一看都懵逼! 就是 ref = {setDropdown}
ef除了设置成我们常用的,还有一种解释:ref可以设置为一个回调函数,这也是官方强烈推荐的写法,这个函数执行的时机有2种场景 1、组件被挂在后,回调函数被立即执行,回调函数的参数就是该组件的实力; 2、组件被卸载或者原有的ref属性本身发生变化时,回调也会被立即执行,此时回调函数参数为null,以确保内存释放;
然后再回归到我们例子:这个方法挺巧妙的,就说对于ref来说,它是能接受一个函数的 setDropdown,那么同时那个useState的返回第二个参数setDropdown,它本身也是一个函数,它接收你的一个传参(div实例),所以说接收传参以后,这个dropdown这个状态就会更新,那么这个dropdown它就是div实例;
有兴趣可以前了解下哈。