ref属性,表示为对组件真正实例的引用,获取ref引用组件对应的dom节点
不管ref设置值是回调函数还是字符串,都可以通过ReactDOM.findDOMNode(ref)来获取组件挂载后真正的dom节点。
1.ref值是字符串
1.<input ref='inputElement'/>
2.this.refs.inputElement
2.
1.<input ref={this.inputElement}/>
2.private inputElement: React.RefObject<HTMLInputElement>;
3.this.inputElement = React.createRef();
if (this.inputElement.current) {
this.inputElement.current.focus();
}
3.ref值是回调函数
1.<input ref={node => this.inputElement = node}/>
2. private inputElement: any;
3.this.inputElement.style.width= '100';
this.refs 和 ReactDOM.findDOMNode的区别
ref添加到Component上获取的是Compoennt实例,添加到原生HTML上获取的是DOM;
ReactDOM.findDOMNode,当参数是DOM,返回值就是该DOM;当参数是Component获取的是该Component render方法中的DOM 二者主要区别在ref绑定在组件上的时候,this.refs获取到的是组件实例,ReactDOM.findDOMNode获取到的是dom节点。
新版本的React已经不推荐我们使用ref string转而使用ref callback