상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
1억대출이자와 주택 관련 세금의 연관성은?
영어작문에서 '내러티브'라는 형식의 의미는 무엇인가요?
AI포토의 최신 업데이트 내용은 무엇인가요?
빅데이터 활용 사례: 혁신을 가져오는 10가지 대안
"해킹 예방을 위한 8가지 행동수칙을 세워보자"
"해킹과 스포츠: 5가지 예시로 알아보는 사이버 공격"
"적시의 정보! 빅데이터 활용이 기업에 미치는 9가지 영향"
유산균이 다이어트에 미치는 영향은?
유산균이 성별에 따라 다른 효과를 주나요?
유산균과 콜레스테롤 조절의 관계는?
음성인식AI에서의 딥러닝의 역할은 무엇인가요?
음성인식AI는 장애인에게 어떻게 도움이 될 수 있나요?
Previous
Next
수정하기 - React에서 스크롤 이벤트를 처리하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
React에서 스크롤 이벤트를 처리하는 방법은 여러 가지가 있으며, 일반적으로 `window` 객체의 스크롤 이벤트를 사용하거나 특정 DOM 요소에 대한 스크롤 이벤트를 처리하는 방식으로 진행됩니다. 아래에서는 React에서 스크롤 이벤트를 처리하는 방법에 대해 자세히 설명하겠습니다. 1. 기본적인 스크롤 이벤트 처리 React에서 스크롤 이벤트를 처리하기 위해서는 `<a href='https://sangseek.com/sangseeks/useEffect/ko'>useEffect</a>` 훅을 사용하여 컴포넌트가 마운트될 때 이벤트 리스너를 추가하고, 언마운트될 때 이를 정리하는 방식으로 진행합니다. ```jsx import React, { useEffect, useState } from 'react'; const ScrollComponent = () => { const [scrollY, setScrollY] = useState(0); const handleScroll = () => { setScrollY(window.scrollY); }; useEffect(() => { window.addEventListener('scroll', handleScroll); // Cleanup function to remove the event listener return () => { window.removeEventListener('scroll', handleScroll); }; }, []); return ( <div> <h1>Scroll Position: {scrollY}px</h1> {/* 긴 내용을 추가하여 스크롤을 가능하게 합니다. */} <div style={{ height: '2000px', background: 'lightgray' }} /> </div> ); }; export <a href='https://sangseek.com/sangseeks/default/ko'>default</a> ScrollComponent; ``` 2. 특정 요소에 대한 스크롤 이벤트 처리 특정 DOM 요소에 대한 스크롤 이벤트를 처리하고 싶다면, 해당 요소에 대한 참조를 생성하고, 그 요소에 이벤트 리스너를 추가하면 됩니다. ```jsx import React, { useEffect, useRef, useState } from 'react'; const ScrollableComponent = () => { const scrollRef = useRef(null); const [scrollTop, setScrollTop] = useState(0); const handleScroll = () => { if (scrollRef.current) { setScrollTop(scrollRef.current.scrollTop); } }; useEffect(() => { const scrollElement = scrollRef.current; if (scrollElement) { scrollElement.addEventListener('scroll', handleScroll); // Cleanup function return () => { scrollElement.removeEventListener('scroll', handleScroll); }; } }, []); return ( <div> <h1>Scroll Position: {scrollTop}px</h1> <div ref={scrollRef} style={{ height: '200px', overflowY: 'scroll', border: '1px solid black' }} > <div style={{ height: '600px', background: 'lightgray' }}> Scroll me! </div> </div> </div> ); }; export default ScrollableComponent; ``` 3. 성능 최적화 스크롤 이벤트는 매우 자주 발생할 수 있기 때문에, 성능을 최적화하는 것이 중요합니다. 이를 위해 `debounce` 또는 `throttle` 기법을 사용할 수 있습니다. Lodash와 같은 라이브러리를 사용하면 쉽게 구현할 수 있습니다. ```jsx import React, { useEffect, useState } from 'react'; import { debounce } from 'lodash'; const DebouncedScrollComponent = () => { const [scrollY, setScrollY] = useState(0); const handleScroll = debounce(() => { setScrollY(window.scrollY); }, 100); // 100ms 간격으로 호출 useEffect(() => { window.addEventListener('scroll', handleScroll); return () => { window.removeEventListener('scroll', handleScroll); }; }, []); return ( <div> <h1>Scroll Position: {scrollY}px</h1> <div style={{ height: '2000px', background: 'lightgray' }} /> </div> ); }; export default DebouncedScrollComponent; ``` 4. 스크롤 위치 저장 <a href='https://sangseek.com/sangseeks/애플/ko'>애플</a>리케이션에서 스크롤 위치를 저장하고 복원하는 기능이 필요할 수 있습니다. 이 경우, `localStorage`를 사용하여 스크롤 위치를 저장하고, 컴포넌트가 마운트될 때 해당 위치로 스크롤을 이동할 수 있습니다. ```jsx import React, { useEffect, useState } from 'react'; const ScrollPositionComponent = () => { const [scrollY, setScrollY] = useState(0); const handleScroll = () => { setScrollY(window.scrollY); localStorage.setItem('scrollPosition', window.scrollY); }; useEffect(() => { const savedScrollY = localStorage.getItem('scrollPosition'); if (savedScrollY) { window.scrollTo(0, parseInt(savedScrollY, 10)); } window.addEventListener('scroll', handleScroll); return () => { window.removeEventListener('scroll', handleScroll); }; }, []); return ( <div> <h1>Scroll Position: {scrollY}px</h1> <div style={{ height: '2000px', background: 'lightgray' }} /> </div> ); }; export default ScrollPositionComponent; ``` 결론 React에서 스크롤 이벤트를 처리하는 방법은 다양하며, 기본적인 이벤트 리스너 추가부터 성능 최적화, 스크롤 위치 저장 및 복원까지 여러 가지 방법을 사용할 수 있습니다. 이러한 방법들을 적절히 조합하여 사용자 경험을 향상시키는 것이 중요합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기