useRef或DOM API?

问题描述

我的头脑中有一个混乱,这是由于反应文档中提到了不要过度使用useRef:https://reactjs.org/docs/refs-and-the-dom.html#dont-overuse-refs

在我当前的反应编码风格中,我使用dom api来操作dom而不是useRef钩子,这是因为我制定了仅在绝对需要时才使用useRef的规则,但是我无法做出逻辑,为什么我必须将useRef替换为dom API。还是在这种情况下应该使用Ref?

解决方法

仔细查看您链接的材料在说什么:

您的第一个倾向可能是使用引用在应用中“使事情成真”。如果是这种情况,请花点时间仔细考虑一下在组件层次结构中应在何处拥有状态。通常,很明显,“拥有”该状态的适当位置在层次结构中处于较高级别。

它说您应该避免使用refs(并因此直接操作DOM元素),而希望通过 state props 来更改DOM。

如果您需要直接访问DOM,则应该绝对使用引用。有人质疑是否需要直接访问DOM而不是使用引用来获取它。