事件

const Comp = React.createClass({

  clickHandler (event) {
    console.log(event)
  },
  render () {
    return 
} }) ReactDOM.render(, document.getElementById('root'))

点击时可以看到event对象的相关属性


事件_第1张图片
图片.png

event对象的通用属性

    boolean  bubbles //事件是否可以冒泡
    boolean cancelable// 事件是否可以取消
    DOMEventTarget currentTarget //
    boolean defaultPrevented // 事件是否禁止默认行为
    number eventPhase // 事件所处的阶段
    boolean isTrusted //事件是否可信,可信事件即用户自定义触发的事件,不可信事件即用js代码触发的事件
    DOMEvent nativeEvent  //使用原生的浏览器发出的事件对象
    void preventDefault() // 禁止默认行为
    void stopPropagation() // 禁止冒泡
    DOMEventTarget target:
    number timeStamp
    string type

不同事件对象的特有属性可参考这篇文章
在上例中看到event对象的各个属性值都是null,在react中是event合成事件对象,类似于事件池,只在调用时会存在相关属性,可以修改代码来看。

const Comp = React.createClass({

  clickHandler (event) {
    console.log(event)
    console.log(event.type)
    console.log(event.bubbles)
  },
  render () {
    return 
} }) ReactDOM.render(, document.getElementById('root'))

事件_第2张图片
图片.png

react支持的事件可以参考 这里
中文版api参考


自定义事件
其实就是将定义的方法作为props给传递进去

const Comp = React.createClass({
  getInitialState () {
      return {
          'name': ''
        }
    },
  changeHandle (event) {
      this.setState({
          'name': event.target.value
        })
      this.props.onChangeName(this.state.name) //把自定义的事件作为props给传递进来
    },
  render () {
      return 
} }) function changeNameHandle (name) { //自定义事件 console.log(name) } ReactDOM.render(, document.getElementById('root'))
事件_第3张图片
图片.png

你可能感兴趣的:(事件)