Обращающиесяры событий используются для определения того, какие действия должны быть предприняты всякий раз, когда событие уволено. Это может быть щелчок мыши или изменение в входе текста.
В реактивных приложениях события записываются в формате CameBase, что означает, что событие OnClick будет записано как onclick в приложении React.
Реагировать реагировать Синтетическое событие Система, которая приносит согласованность и высокую производительность для реагирования на приложения и интерфейсы. Он достигает согласованности нормализующими событиями, так что у них есть те же свойства на разных браузерах и платформах.
Синтетические события – это обертка кросс-браузера вокруг собственного события браузера. Он имеет тот же интерфейс, что и нативное событие браузера, включая StopPropagation () и PreventDefault (), за исключением событий работают одинаково во всех браузерах.
Он достигает высокой производительности путем автоматического использования делегации событий. На самом деле RECT не присоединяет обработчики событий к самим узлам. Вместо этого слушатель одного события прикреплен к корню документа; Когда событие уволено, Ract Maps отображает его к соответствующему элементу компонента.
Прослушивание событий
Прослушивание событий в реакции может быть таким же простым, как пример ниже.
В приведенном выше примере атрибут TheonClick является нашим обработчиком событий, и он добавляется в целевой элемент, чтобы указать функцию, которая должна быть выполнена, когда этот элемент нажат. Атрибут OnClick устанавливается на функцию ShowAlert, которая предупреждает сообщение.
В более простых терминах это означает, что нажатие кнопки включена кнопка, функция ShowAlert называется, которая, по очереди, показывает поле оповещения.
Методы связывания
В JavaScript методы класса не являются связанный по умолчанию. Поэтому важно, чтобы мы связываем функции в экземпляре класса.
Привязка в визуализации ()
Один из способов разрешения проблемы связывания состоит в том, чтобы вызвать связывание в функции рендера.
В приведенном выше примере мы используем обработчик событий Onchange для прослушивания событий ввода текста. Это делается путем связывания его в функции рендеринга. Этот метод требует вызова .bind (this) в функции Render ().
Почему?
Любой метод класса ES6 является простой функцией JavaScript, поэтому она наследует связывание () от Функция прототип. Так что теперь, когда мы называем OnChange () внутри JSX, это укажет на наш класс экземпляра. Очень просто.
Хотя, используя этот метод означает, что могут возникнуть некоторые последствия для производительности, поскольку функция перераспределяется на каждом визуализации. Эта стоимость производительности может быть не видима вообще в небольших реагированных приложениях, но может заметна в более крупных реагистрационных приложениях.
Привязка в конструкторе ()
Если привязка в рендере не работает для вас, вы можете связать в конструкторе. Смотрите пример ниже:
Как вы можете видеть выше, функция ChangeText связана в конструкторе.
this.changeText = this.changeText.bind()
Давайте перейдем на то, как работает линейка кода выше работы.
Первый этот .changetext относится к методу ChangeText. Поскольку это делается в конструкторе, «это» относится к компоненту класса изменений.
Второе this.Changetext также имеет отношение к одному и тому же методу Change Text (), но теперь мы звоним .bind () в теме.
Финал «Это» – это контекст, в котором мы передаем .bind (), и он ссылается на компонент класса изменений.
Также важно отметить, что если ChangeText не связан с экземпляром класса, он не сможет получить доступ к этому. SettState, потому что это будет не определено. Это еще одна важная причина для связывания функций обработки событий.
Привязка с функцией стрелки
Другим способом обработки событий является связыванием с функцией стрелки жира. С свойствами класса ES7 мы можем сделать привязки на определении метода, как видно в примере ниже:
По определению, Функция стрелки выражение имеет более короткий синтаксис, чем экспрессию функции и не имеет своего собственного, аргументов, Super или New.target.
В приведенном выше примере, как только компонент был создан, то этот. Хандлевент никогда больше не изменится. Что в свою очередь означает, <кнопка>
не будет перенесено. Этот подход очень прост и легко читать.
Эти методы также имеют свои затраты на производительность, такие как связывание в методе функции рендеринга.
Пользовательские компоненты и события
Когда дело доходит до событий в реакции, только элементы DOM могут иметь обработчики событий. Возьмите пример компонента под названием Custombutton с событием OnClick. Это не ответило бы на клики из-за причины выше.
Итак, как мы обращаемся к обработке событий для пользовательских компонентов?
Передавая элемент DOM внутри компонента Custombutton и пропустите его onclick в него. Наш Custombutton по сути, проходит через событие клики.
В приведенном выше примере компонент Custombutton передается опору OnPress, который затем передается в onClick кнопки.
Заключение
Обработчики событий – это то, что используется при определении того, какие действия должны быть предприняты при возникновении события. Событие OnClick используется для списка событий щелчка на элементах DOM.
Когда дело доходит до обработки событий, привязка – очень важная тема, и есть несколько способов пойти об этом. Таким образом, вопрос сейчас какая из методов связывания вы используете?
В большинстве приложений производительность последствия привязки функции рендеринга не будет заметна, поэтому вы можете рассмотреть возможность использования метода для чтения и преимуществ обслуживания.
Но для превосходной производительности вы можете рассмотреть возможность использования привязки в методе конструктора.
Однако, если вы уже пишете Стадия 2 Код JavaScript, затем использование функции стрелки – это ваш самый безопасный лучший.
Plug: Logrocket, DVR для веб-приложений
Logrocket Это инструмент для ведения журнала Frontend, который позволяет вам повторить проблемы, как если бы они произошли в вашем браузере. Вместо того, чтобы угадать, почему случаются ошибки, или просят пользователей на скриншоты и журнал свалки, Lognocket позволяет воспроизвести сеанс, чтобы быстро понять, что пошло не так. Он отлично работает с любым приложением, независимо от основ и имеет плагины для регистрации дополнительного контекста из Redux, Vuex и @ Ngrx/Store.
В дополнение к регистрации действий и состояния Redux, Lognocket Records Console Logs, ошибки JavaScript, Stacktraces, Networks/Ответы с заголовками + тел, метаданные браузера и пользовательские журналы. Он также привлекает инструменты DOM для записи HTML и CSS на странице, воссоздая Pixel-Perfect видео даже самых сложных приложений для одной страницы.
Попробуйте бесплатно.
Пост Руководство по реагированию авторских обработчиков событий OnClick появился первым на Logocket blog Отказ
Оригинал: “https://dev.to/bnevilleoneill/a-guide-to-react-onclick-event-handlers-517i”