В React есть несколько способов поймать компонент при скролле страницы. Один из самых популярных способов - использовать библиотеку React Scroll. Эта библиотека предоставляет удобные инструменты для работы со скроллом и обнаружения видимости компонента.
Для начала вам нужно установить библиотеку React Scroll с помощью npm:
npm install react-scroll
После установки библиотеки вы можете импортировать необходимые компоненты:
import { Element, scroller } from 'react-scroll';
Element - это специальный компонент, который определяет область на странице, которую нужно проверять на видимость при скролле.
Пример использования:
class MyComponent extends React.Component { componentDidMount() { window.addEventListener('scroll', this.handleScroll); } componentWillUnmount() { window.removeEventListener('scroll', this.handleScroll); } handleScroll = () => { const element = document.getElementById('my-element'); // Проверяем, видим ли элемент на странице при скролле const isVisible = scroller.isElementVisible('my-element'); if (isVisible) { // Ваш код, для работы с видимым компонентом } }; render() { return ( <Element name="my-element" id="my-element"> {/* Содержимое компонента */} </Element> ); } }
В примере выше мы добавляем обработчик события 'scroll' к window в методе componentDidMount. В методе компонента componentWillUnmount мы удаляем этот обработчик.
Когда происходит событие scroll, мы вызываем метод handleScroll, который проверяет, виден ли компонент с идентификатором 'my-element' при скролле. Если компонент виден, вы можете выполнить определенные действия в вашем коде.
Element компонент из библиотеки React Scroll - это вспомогательный компонент, который создает область на странице, которую можно проверить на видимость. Содержимое компонента должно быть обернуто в элемент <Element name="my-element" id="my-element">...</Element>
, где 'my-element' - это идентификатор, используемый для проверки видимости при скролле.
Это только один из возможных способов поймать компонент Реакт при скролле страницы. В зависимости от вашего проекта и требований вы можете использовать различные библиотеки или подходы.