import React from 'react'
import Child from './child'
export default class UseRef extends React.Component {
/**
* 第一种ref使用方式
*/
// componentDidMount() {
// console.log(this.refs.div)
// }
// render() {
// return (
// <div ref="div">12121</div>
// )
// }
/**
* 第二种ref使用方式
*/
// componentDidMount() {
// console.log(this.div)
// }
// render() {
// return (
// <div ref={el=>this.div=el}>12121ddd</div>
// )
// }
/**
* 第三种
* 1. 给子组件绑定一个实例
* 2. 函数式子组件中使用React.forwardRef(函数组件)来注册ref
* 3. 访问实例的属性
*/
// componentDidMount() {
// console.log(this.child.value)
// this.child.value = 'df'
// }
// render() {
// return (
// <Child ref={el=>this.child = el}/>
// )
// }
/**
* 第四种 createRef
*/
constructor() {
super()
this.div = React.createRef()
}
componentDidMount() {
this.div.current.style.background='red'
}
render() {
return (
<div ref={this.div}>12121</div>
)
}
}
08-17