В этой статье мы рассмотрим обработку событий с помощью ReactJS. ReactJS — очень популярная интерфейсная библиотека, используемая для создания интерфейсных приложений высокопроизводительных приложений. Обработка событий в ReactJS очень похожа на обработку событий DOM с использованием простого JavaScript. Но есть некоторые различия, как мы увидим в этой статье.
1. Введение
Давайте начнем с создания примера приложения для изучения и демонстрации концепций, описанных в статье. Я использовал следующие технические средства и инструменты для создания примера приложения, которое мы увидим в этом примере.
Сначала мы создадим приложение React, используя пакет create-реагировать на приложение из npm. Команда ниже должна сделать эту работу за нас:
|
1
|
> npx create-react-app my-react-app . |
Это создаст приложение React в текущем каталоге и также установит все зависимости.
Наша недавно созданная структура проекта должна выглядеть следующим образом:

2. Пример прослушивателя событий ReactJS
Теперь давайте создадим пару компонентов и попытаемся научиться обрабатывать события во время его работы. Первый компонент будет иметь кнопку, событие клика которой будет обработано. При нажатии на кнопку мы покажем всплывающее окно с предупреждением для приветствия пользователя. Код для компонента приведен ниже, а пояснение к нему следующее:
Greet.tsx
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
import React from 'react';class Greet extends React.Component { constructor (props: any) { super(props); this.handleClick = this.handleClick.bind(this); } render = () => { return <div> <button onClick={this.greetUser}>Press Me</button> <button onClick={this.handleClick}>Do Not Press</button> </div> } handleClick() { alert('Warning! Do Not Press!'); } greetUser = () => { alert('Hello there!'); }}export default Greet; |
Здесь этот компонент отображает две кнопки и обрабатывает их событие нажатия. Что нужно сказать о синтаксисе, так это верблюжий список имен событий в React. Кроме того, если вы не используете функции со стрелками, вам нужно привязать методы к this в конструкторе, как в коде выше. Помимо этого еще одно замечание — мы передаем функцию вместо строки событию. Как в onClick={this.handleClick} вместо onClick="handleClick()" .
Теперь, когда мы запускаем проект с помощью npm start и в браузере переходим на http://localhost:3000 , мы видим следующие результаты.

3. Привязка событий слушателей
Еще один нюанс обработки событий в React заключается в том, что действие по умолчанию невозможно предотвратить, возвращая false. Нам нужно явно вызвать метод preventDefault для переданного объекта event Объект события, переданный в обработчик события, создается самой React, чтобы сгладить различия в реализациях между браузерами. Давайте посмотрим, как это работает, в другом примере, где мы обрабатываем событие click тега привязки.
Наш код для этого примера выглядит так, как показано ниже:
Link.tsx
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
import React from 'react';class Link extends React.Component { render = () => { return <div>onClick={this.handleClick}>Take me to Java Code Geeks!</a> </div> } handleClick = (e: any) => { e.preventDefault(); alert('Wait...'); }}export default Link; |
Здесь, как вы можете видеть, мы вызываем метод warnDefault для объекта события, переданного в обработчик события. Это предотвращает действие по умолчанию при переходе на веб-сайт JavaCodeGeeks.com и вместо этого показывает пользователю предупреждение, как показано ниже:

Это завершает наш взгляд на обработку событий с ReactJS.