美文网首页
react 之 ref

react 之 ref

作者: Sun____ | 来源:发表于2019-09-30 10:47 被阅读0次

React的ref有3种用法:

  1. 字符串(已废弃)
  2. 回调函数
  3. React.createRef() (React16.3提供)

1. 字符串

最早的ref用法。

1.dom节点上使用,通过this.refs[refName]来引用真实的dom节点
<input ref="inputRef" /> //this.refs['inputRef']来访问

2.类组件上使用,通过this.refs[refName]来引用组件的实例
<CustomInput ref="comRef" /> //this.refs['comRef']来访问

2. 回调函数

回调函数就是在dom节点或组件上挂载函数,函数的入参是dom节点或组件实例,达到的效果与字符串形式是一样的,
都是获取其引用。

回调函数的触发时机:

  1. 组件渲染后,即componentDidMount后
  2. 组件卸载后,即componentWillUnmount后,此时,入参为null
  3. ref改变后

1.dom节点上使用回调函数
<input ref={(input) => {this.textInput = input;}} type="text" />

2.类组件上使用
<CustomInput ref={(input) => {this.textInput = input;}} />

3.可用通过props跨级传递的方式来获取子孙级dom节点或组件实例

下面是在跨两级获取到孙级别的组件内部的dom节点

function CustomTextInput(props) { 
    return ( 
        <div>
            <input ref={props.inputRef} />
        </div>
   );
} 

function Parent(props) { 
  return (
     <div> My input: <CustomTextInput inputRef={props.inputRef} /></div>
 );
}

class Grandparent extends React.Component {
  render() { 
    return ( 
      <Parent inputRef={el => this.inputElement = el} />
     );
  }
}

3.React.createRef()

在React 16.3版本后,使用此方法来创建ref。将其赋值给一个变量,通过ref挂载在dom节点或组件上,该ref的current属性
将能拿到dom节点或组件的实例
例如:

class Child extends React.Component{
    constructor(props){
        super(props);
        this.myRef=React.createRef();
    }
    componentDidMount(){
        console.log(this.myRef.current);
    }
    render(){
        return <input ref={this.myRef}/>
    }
}

相关文章

  • react-ref

    ref:react对真实dom的引用 ref在reactElement上 ref在react组件上

  • React中ref的使用

    React中Ref是什么? ref是React提供的用来操纵React组件实例或者DOM元素的接口。 ref的作用...

  • React之ref

    React提供的这个ref属性,表示为对组件真正实例的引用,其实就是ReactDOM.render()返回的组件实...

  • react 之 ref

    React的ref有3种用法: 字符串(已废弃) 回调函数 React.createRef() (React16....

  • react 之 ref

    Refs 可以直接访问 dom 节点或者 react 组件。 在传统的 react 数据流中,父组件与子组件的数据...

  • 如何使用React Refs

    如何在React中利用ref以及ref转发,回调ref和HOC React Ref是有用的功能,可作为从父组件中引...

  • React学习笔记(三)

    React中的 ref 的使用 ref是一个引用,在React中使用ref来直接获取DOM元素从而操作DOM Re...

  • React 中 ref 的使用

    ref是reference的简写,它是一个引用,在react中,我们使用ref来操作DOM。 在react中,我们...

  • React 中的转发ref

    在 React V16.3� 中react引入了: React.forward((props, ref) => R...

  • React refs

    1.React.createRef() React.createRef可以给Dom元素添加ref。React.cr...

网友评论

      本文标题:react 之 ref

      本文链接:https://www.haomeiwen.com/subject/dfucpctx.html