react中的ref的3种方式

需要获取dom的时候使用 ,不建议多使用 因为会缓存到内存

  • string类型绑定 (不推荐)
  • 函数类型绑定 (不推荐)
  • createRef绑定

ref获取DOM更改数据String绑定方式

import React from 'react'
export default class ChangeRef extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            title: 'ref数据'
        }
    }
    render() {
        return (
            <div ref='box'>{this.state.title}
            </div>
        )
    }
    componentDidMount() {
         this.refs.box.innerHTML = '更改refs数据'
    }
}

ref回调函数式更改数据函数绑定方式

import React from 'react'
export default class ChangeRef extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            title: 'ref数据'
        }
    }
    render() {
        return (
        		<div ref={element => {
                    this.box2 = element
                }}>{this.state.title}</div>
        )
    }
    componentDidMount() {
        this.box2.innerHTML = '更改refs数据'
    }
}

createRef 专人专用,每次使用都要定义一个新的

      class Demo extends React.Component{
            constructor(props){
                super(props)
                this.container=React.createRef() //createRef 专人专用 
                this.container2=React.createRef()
            }
            aa(){
                console.log(this.container.current.value)
            }
            bb(){
           		console.log(this.container2.current.value)
            }
           render(){
               return (
               <div>
                <input type="text" ref={this.container} />
                <button onClick={this.aa.bind(this)}>测试</button>
                 <input type="text" ref={this.container2} />
                 <button onClick={this.bb.bind(this)}>测试</button>
                 <Demo2/>
                </div>
               )
           }
       }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值