ref在react中的使用

一.ref

ref挂载到组件上:是对组件实例的引用
ref挂载到Dom元素上:表示真正的dom元素

二.ref的使用方式

1.回调函数的形式:ref={this.refCom}或 ref={(instance)=>this.refName(组件名)=instance}

回调函数的参数是组件的实例,回调函数会在组件被挂载后立即执行,或是组件被卸载或组件的ref属性本身发生变化,回调也会被立即执行,但是后一种情况回调函数的参数为null,以防止内存泄漏。

2.字符串的形式:ref=‘string(组件名)’

可以通过this.refs.string(组件名)获取组件实例(**不推荐使用**)

3.获取ref的值

不管ref设置值是回调函数还是字符串,都可以通过ReactDOM.findDOMNode(ref)来获取组件挂载后真正的dom节点,获取的是一个实例对象,方法都在实例对象里面。可以通过[color=#f20257]实例对象.(方法名)[/color]的形式调用

三.ref的使用

  1. 在由状态组件中的使用:可以通过子组件的ref可以访问到子组件实例中的props、state、refs、实例方法(非继承而来的方法)等

2.在无状态组件中的使用:无状态组件是不会被实例化的

四.注意:

不要在组件的render方法中访问ref引用,render方法只是返回一个虚拟dom,这时组件不一定挂载到dom中或者render返回的虚拟dom不一定会更新到dom中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值