class Demo {
MyRef = React.createRef()
showInfo = () => {
console.log('xxx')
}
render() {
return(
<div>
<input onBlur={this.showInfo} ref={this.MyRef} type="text" placeholder="点击按钮提示信息"/>
</div>
)
}
}
ReactDOM.render(<Demo/>, document.getElmentById('test'))
ref
像上面这种 ref
其实可以使用事件处理的方式来实现class Demo {
showInfo = (event) => {
console.log(event)
}
render() {
return(
<div>
<input onBlur={this.showInfo} type="text" placeholder="点击按钮提示信息"/>
</div>
)
}
}
ref
onXxx
属性指定事件处理函数,注意大小写React
中使用的是自定义(合成)事件,而不是使用的原生的 DOM
事件
React
中的事件是通过事件委托方式处理的(委托给组加你最外层的元素)
<!-- 这里采用事件冒泡,也叫事件委托的形式,在 ul 身上处理点击事件,而不是每一个 li 单独去添加 -->
<ul onclick="xxxx">
<li>首页</li>
<li>个人中心</li>
<li>关于</li>
</ul>
event.target
得到发生事件的 DOM
元素对象