React.js Handling Events

Event Handling in React.js

Event handling is similar to traditional HTML event handling, but with a few differences due to JSX syntax and React's synthetic event system.

Inline Event Handlers: Also you can define event handlers directly within JSX by using camelCase event names as props.

Example:

                                      
                                      function handleClick() {
  console.log('Button clicked!');
}

const element = <button onClick={handleClick}>Click me</button>;

                                      
                                    

Class Component Event Handlers: In class components, event handlers are defined as methods of the class.

Example:

                                      
                                      class Button extends React.Component {
  handleClick() {
    console.log('Button clicked!');
  }

  render() {
    return <button onClick={this.handleClick}>Click me</button>;
  }
}

                                      
                                    

Binding Event Handlers

There are several ways to bind event handlers to components in react:

Binding in the Constructor: You can bind event handler methods in the constructor to ensure they have the correct this context.

Example:

                                      
                                      class Button extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    console.log('Button clicked!');
  }

  render() {
    return <button onClick={this.handleClick}>Click me</button>;
  }
}

                                      
                                    

Arrow Function in Render: You can use arrow functions directly in the render method, which automatically binds this.

Example:

                                      
                                      class Button extends React.Component {
  handleClick() {
    console.log('Button clicked!');
  }

  render() {
    return <button onClick={() => this.handleClick()}>Click me</button>;
  }
}
                                      
                                    

Common Event Types

Some common event types used in React.js include:

  • onClick: Triggered when a user clicks an element.
  • onChange: Triggered when the value of an input element changes.
  • onSubmit: Triggered when a form is submitted.
  • onMouseOver / onMouseOut: Triggered when the mouse pointer moves over / out of an element.
  • onFocus / onBlur: Triggered when an element gains / loses focus.