Vis*_*was 13 javascript reactjs
我最近开始研究React,并了解如何使用ref来获取DOM节点。在React文档中,他们提到了创建引用的两种方法。您能在什么情况下让我知道回调ref比createRef()好吗?我发现createRef更简单。尽管文档说“回调引用可以为您提供更精细的控制”,但我无法理解以哪种方式。谢谢
除了 jmargolisvt 所说的,我发现回调非常有趣的一件事是我可以在一个数组中设置多个引用,以便我可以更好地控制它。像这样:
class A extends React.Component {
constructor(props) {
super(props);
this.inputs = [];
}
render() {
return [0, 1, 2, 3].map((key, index) => (
<Input
key={key}
ref={input => this.inputs[index] = input}
/>)
);
}
}
Run Code Online (Sandbox Code Playgroud)
createRef返回 DOM 节点或组件的已安装实例,具体取决于您调用它的位置。无论哪种方式,正如您所指出的,您手头的东西确实很简单。但是如果你想用那个引用做一些事情呢?如果您想在组件安装时执行此操作怎么办?
Ref 回调对此非常有用,因为它们在componentDidMount和之前被调用componentDidUpdate。这就是你如何对 ref 进行更细粒度的控制。你现在不仅仅是命令式地获取 DOM 元素,而是在 React 生命周期中动态更新 DOM,而是通过 ref API 对你的 DOM 进行细粒度的访问。
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |