Inflearn brand logo image

인프런 커뮤니티 질문&답변

Eric J님의 프로필 이미지
Eric J

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

인피니트 스크롤링 적용하기

무한 스크롤 중 스크롤 튐 현상

작성

·

60

0

무한 스크롤에서 추가 데이터가 load되는 순간, 스크롤 영역이 늘어나게 되는데요. 이 때 유저가 보고 있던 스크롤 위치를 잃고 튀는 현상이 있습니다

 

당장 생각나는 방법은 이전 scrollY를 갖고 있다가 useLayoutEffect 걸어서 data가 변경될 때 scrollTo 해주는 것인데요, 혹시 더 나은 방법 고민해보셨는지 궁금합니다

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. Eric J님, 무한 스크롤 구현 중에 스크롤 튐 현상으로 고민 중이시군요. 이와 관련된 몇 가지 해결 방법을 제안드리겠습니다.

무한 스크롤에서 스크롤 위치가 변동되어 불편을 겪는 경우가 있습니다. 일반적으로 다음과 같은 접근 방법을 고려할 수 있습니다:

  1. 저장된 스크롤 위치 복원: 데이터가 로드된 후 저장된 이전 스크롤 위치로 복원하는 것입니다. 이를 위해 window.scrollTo()를 활용할 수 있습니다. 이 방법은 유연하고 구현하기 쉽다는 장점이 있지만, 데이터가 변경될 때마다 부드럽지 않게 스크롤이 이동할 수 있습니다.

  2. Intersection Observer 활용: 새로운 데이터를 로드할 때, 스크롤 위치를 유지하며 자연스럽게 이어지도록 Intersection Observer API를 사용할 수 있습니다. 이를 통해 뷰포트에서 요소가 나가거나 들어올 때 발생하는 이벤트를 감지하여 더 자연스러운 사용자 경험을 제공할 수 있습니다.

  3. 가상화 라이브러리 사용: react-windowreact-virtualized 같은 라이브러리를 사용하면 큰 리스트를 효율적으로 렌더링할 수 있으며, 스크롤 튐 현상도 최소화할 수 있습니다. 이러한 라이브러리들은 많은 아이템 리스트에서 성능 문제를 해결해주며 스크롤 위치 문제도 자연스럽게 해결해 줄 수 있습니다.

아래의 링크를 통해 무한 스크롤과 관련된 기존 질문과 답변을 참고하시면 도움이 될 것입니다:

이와 같은 해결 방법을 시도해 보시길 권장드리며, 추가적으로 궁금한 점이 있으실 경우 언제든지 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Eric J님의 프로필 이미지
Eric J

작성한 질문수

질문하기