Как определить клик за пределами компонента React?
Мы можем использовать метод createRef () для создания ссылки на любой элемент в компоненте на основе классов. Затем мы можем проверить, произошло ли событие щелчка в компоненте или вне компонента.
В функциональном компоненте мы можем использовать ловушку useRef () для создания ссылки на любой элемент.
Создание приложения React и установка модуля:
Шаг 1. Создайте приложение React, используя следующую команду:
npx создать-реагировать-приложение имя папки
Шаг 2: После создания папки проекта, т.е. имени папки , перейдите в нее с помощью следующей команды:
cd имя папки
Структура проекта: это будет выглядеть следующим образом.

Структура проекта
App.js: теперь запишите следующий код в файл App.js. Здесь App - это наш компонент по умолчанию, в котором мы написали наш код.
Имя файла - App.js: использование базового компонента класса
Javascript
| import React from'react';class App extends React.Component {   constructor(props) {    super(props);     // Creating a reference    this.box = React.createRef();  }   componentDidMount() {     // Adding a click event listener    document.addEventListener('click',this.handleOutsideClick);  }   handleOutsideClick = (event) => {    if(this.box && !this.box.current.contains(event.target)) {      alert('you just clicked outside of box!');    }  }   render() {    return<div style={{      margin: 300,      width: 200, height: 200, backgroundColor:'green'    }}       // Assigning the ref to div component      ref={this.box}>{this.props.children}</div>;  }} exportApp;default | 
Имя файла - App.js: <Использование функционального компонента / p>
Javascript
| import React, { useEffect, useRef } from'react' functionApp(props) {  const box = useRef(null);  useOutsideAlerter(box);  return(<div style={{    margin: 300,    width: 200, height: 200, backgroundColor:'green'  }}    ref={box}>{props.children}</div>  )} exportApp;default functionuseOutsideAlerter(ref) {  useEffect(() => {     // Function for click event    functionhandleOutsideClick(event) {      if(ref.current && !ref.current.contains(event.target)) {        alert("you just clicked outside of box!");      }    }     // Adding click event listener    document.addEventListener("click", handleOutsideClick);   }, [ref]);} | 
Шаг для запуска приложения: запустите приложение, используя следующую команду из корневого каталога проекта:
npm start
Вывод: Теперь откройте браузер и перейдите по адресу http: // localhost: 3000 / , вы увидите следующий вывод:
