在react组件中获取DOM元素的三种方式

1, 给标签设置ref属性, 通过this.refs调用  (老版本语法,将要废除)
    <h1 ref="myH1"></h1>
    this.refs.myH1

2, 在构造器中创建ref全局变量, 在标签中ref属性动态绑定这个全局变量, 通过全局变量的current字段调用
    this.myH2 = React.createRef() 
    <h2 ref={this.myH2}></h2>
    this.myH2.current

3, 在标签ref属性绑定函数, 在函数中定义全局变量赋值, 通过全局变量调用
    <h3 ref={ ele => this.myH3 = ele }></h3>
    this.myH3


4, 使用hook语法查找DOM
    const d1 = useRef()
    <div id="d1" ref={d1}>div1</div>
    d1.current

5, 使用hook语法查找DOM
    const d2 = useRef()
    <div id="d2" ref={el => d2=el}>div1</div>
    d2


注意: 
1, 在父组件中用ref获取子组件对象, 必须保证子组件是类组件, 函数式组件获取结果是undefined
2, 父组件使用ref获取子组件对象后, 可以对子组件状态数据和函数执行调用和修改

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐