使用Ref反应

时间:2018-08-16 03:51:38

标签: reactjs ref

是真的,Ref的目的是替换document.getElementById ??

一旦我做出反应,就不应该使用document.getElementById访问DOM来获取数据吗?

我发现有一篇文章说我们可以应用 this.refs 来访问DOM

   <input  ref="test" value="option" id="option4"/>

   console.log(this.refs.test);

但是它只能在组件内的方法中运行, 如果我想在控制台(开发人员工具)中显示输入值怎么办?

1 个答案:

答案 0 :(得分:0)

在某种程度上是对的,因为react使用其虚拟dom和diffing算法来观察变化并反映在dom中。如果您使用直接api访问dom。 react无法在其虚拟dom中访问它。

这就是为什么它们具有唯一的 id 的原因,就像在DOM中操作元素(组件)一样作为 节点

如果您在npm软件包中使用的确认警报组件中看到它们,它们将使用 ReactDOM 创建一个元素并将其呈现为元素。烤面包机完成后,不会直接将其从 DOM 中删除。

首先通过使用{{3}上的api findDomNode reactVirtualDom 中找到它}

然后使用 unmountComponentAtNode 卸载它。 https://reactjs.org/docs/react-dom.html#finddomnode

例如: https://reactjs.org/docs/react-dom.html#unmountcomponentatnode

因此,ref用于克服直接DOM操作和影响或影响反应渲染过程的更改。