createRef 是 React 上面的 API,React.createRef() 没有任何参数
class Text extends React.Component {constructor (props){super(props);this.divRef = React.createRef();}render(){return (<div ref={this.divRef}></div>)}}
通过 createRef 创建 ref 对象
通过元素的 ref 属性可以附加到 React 元素上
一般通过构造器中给 this 上的属性赋值一个 ref,方便整个组件使用
ref 只要传递 React 元素中,就可以利用 ref 的 current 属性访问到该真实 DOM 节点
ref 在 componentDidMount 和 componentDidUpdate 触发前更新
ref 有不同使用方式
- ref 在 HTML 元素,那么 current 是真实 DOM 节点
- ref 在 class 组件,那么 current 是组件的实例
- ref 在函数组件(没有实例)createRef 附加不到在组件上,就没办法使用
函数组件是使用 Hooks
useRef来解决的function Test() {const divRef = React.useRef(null);React.useEffect(() => {console.log(divRef);}, [])return (<div ref={divRef}>Hello, Function Ref!!!</div>)}
