ref属性获取DOM元素


原生方法获取DOM(不推荐)

import React from 'react';

class App extends React.Component {
constructor(props) {
super(props);
}
render() {
return (

获取DOM元素




)
}
btnClick = () => {
let box = document.getElementById('box');
console.log(box);
}
}

export default App;
  • 不推荐直接使用原生方式获取DOM

使用  this.refs 获取DOM(不推荐)

import React from 'react';

class App extends React.Component {
  constructor(props) {
    super(props);
  }
  render() {
    return (
      

获取DOM元素

) } btnClick = () => { let box = this.refs.box; console.log(box); } } export default App;
  • 不推荐,过时的方式获取 DOM 

使用React.createRef (推荐)

import React from 'react';

class App extends React.Component {
  constructor(props) {
    super(props);
    this.box = React.createRef();
  }
  render() {
    return (
      

this.box}>获取DOM元素

) } btnClick = () => { console.log(this.box.current); } } export default App;
  • 推荐
  • 使用  React.createRef() 创建一个对象,将该对象赋值给 DOM 元素的 ref 属性,该对象的  current 就是该 DOM 对象

通过回调函数方式获取DOM (推荐)

import React from 'react';

class App extends React.Component {
  constructor(props) {
    super(props);
    this.box = null
  }
  render() {
    return (
      

this.box = ele}>获取DOM元素

) } btnClick = () => { console.log(this.box); } } export default App;
  • 推荐
  • 给  DOM  元素添加  ref 属性,取值是一个函数,函数的第一个参数就是当前DOM元素