使用ref和document.getElementById,使用ReactJS时有什么区别?

esa*_*z91 5 javascript web reactjs

使用之间有什么区别/优点/缺点:

  React.findDOMNode(this.refs.elementReferenceName)
Run Code Online (Sandbox Code Playgroud)

  document.getElementById(elementId)
Run Code Online (Sandbox Code Playgroud)

什么时候使用ReactJS?

Ed *_*lot 6

使用React.findDOMNode它的主要优点和理由是它保持在 React 范式内,因为你传递给它一个组件——并且在大多数情况下你正在处理 React 组件(处理生命周期函数或调用在组件中实现的函数)描述符)。

依赖 DOM 元素中的 id 会破坏 React 中的封装,因为它不使用 id。

话虽如此,这取决于您和您的特定应用程序的需求来确定哪个最适合使用。与其他 React 函数一样,您必须小心,因为React.findDOMNode在错误的时间调用(在渲染中或如果组件未安装)将引发异常。OTOH,document.getElementById如果组件被卸载不会抛出异常;但如果该 id 存在多个元素,它可能会返回错误的元素。

如果您还没有找到它,这里是 findDOMNode 的文档

另外,这里是 findDOMNode 的实现