创建ref引用的另一种选择

You, web development
Back

在函数组件中,我们常常使用 useRef 来引用 dom 节点,但大家可能不知道用 useState 也可以获取到 dom 节点,而且这个方法在某些情况比 useRef 更加方便、简洁。

在以下案例中我们可以看到当我们删除或添加节点时,useEffect 中都会正确打印 ref 的引用

问:在什么场景下我们会用 useState 来引用 dom 呢? 答:有时你可能需要检测 dom 的变化,这时将 ref 作为 useEffect 的依赖项这会很有用。

当然在绝大多数情况下你都应使用 useRef,用 useState 会导致多一次的 rerender, 性能开销自然也就更多

© liaoliao666.