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

작성자 없음

작성자 정보가 삭제된 글입니다.

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

무한 스크롤 기능 구현하기, 더 나은 검색을 위한 SEO 작업하기

무한 스크롤 시 화면 위치 문제

해결된 질문

작성

·

54

0

무한 스크롤 구현 중에, 스크롤을 내리면 자연스럽게 다음 페이지로 이어지는 게 아니라, 한번 아래로 내려갔다가 다시 스크롤했던 위치로 돌아옵니다. 이 문제는 어떻게 해결할 수 있을까요?

답변 3

0

로펀님은 강의 촬영이후에 수정하신 거 같던데, 그 스피너 도는 부분이 영화 리스트 출력하는 것보다 위에 있나 확인해보세요. 아마 강의대로만 쭉 따라했으면 위에 있을텐데, 스피너 컴포넌트를 영화 리스트 아래로 내리시면 해결될거에요

로펀님의 프로필 이미지
로펀
지식공유자

오 감사합니다 doyeol님! 말씀주신 것처럼 강의 후에 제가 수정을 진행한 부분이네요. Spinner 코드를 하단으로 내려주시면 문제없이 잘 동작합니다.

답글 감사합니다 ㅎㅎ

0

로펀님의 프로필 이미지
로펀
지식공유자

스크롤 관련 디테일은 두 가지 정도로 잡아볼 수 있을 것 같습니다.

  1. 스크롤 내렸을 때 새롭게 추가된 아이템들에 맞게 스크롤 위치 변경

     

  2. 무한스크롤을 하다가 다른 페이지를 방문한 후 돌아왔을 때 마지막으로 스크롤한 위치로 이동

1번 이슈의 경우 가상 리스트라는 개념을 도입하시면 더 우아한 무한 스크롤 개발이 가능합니다. 이 이슈에 대해서는 오늘의 집에서 정말 상세하게 정리해둔 글이 있으니 이 글을 참고해서 개발해보시면 좋은 연습이 될 것 같습니다 ㅎㅎ

https://www.bucketplace.com/post/2020-09-10-%EC%98%A4%EB%8A%98%EC%9D%98%EC%A7%91-%EB%82%B4-%EB%AC%B4%ED%95%9C%EC%8A%A4%ED%81%AC%EB%A1%A4-%EA%B0%9C%EB%B0%9C%EA%B8%B0/

https://www.bucketplace.com/post/2024-09-11-virtualizedlist-%EB%AC%B4%ED%95%9C%EC%8A%A4%ED%81%AC%EB%A1%A4-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EB%A6%AC%ED%8C%A9%ED%86%A0%EB%A7%81-%EA%B0%9C%EB%B0%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0/

 

2번의 경우 local storage, session stroage등을 이용해서 기존에 스크롤 하던 위치를 기억할 수 있습니다. 아래 블로그에 hands-on 해보실 수 있는 자세한 내용이 나와있으니 참고 부탁드립니다.

https://minguri.tistory.com/29

0

안녕하세요, 인프런 AI 인턴입니다. He T (Tty)님.

무한 스크롤 기능을 구현할 때, 스크롤 위치가 초기화되는 문제는 종종 발생합니다. 이는 주로 새로운 페이지의 데이터를 불러올 때 기존 데이터를 잘못 처리하거나, 새로운 콘텐츠가 로드될 때 스크롤 오프셋이 계산되지 않는 경우에 발생할 수 있습니다. 이를 해결하기 위해서는 몇 가지 방법을 시도할 수 있습니다.

  1. 페이지 데이터 관리: 무한 스크롤을 구현할 때, 기존 데이터를 유지하면서 새로운 페이지 데이터를 추가하는 방식으로 구현해야 합니다. useState 혹은 useReducer 등의 상태 관리 툴을 사용하여 데이터를 잘 관리하고 있는지 확인해보세요.

  2. 스크롤 위치 추적: 새로운 데이터가 로드될 때 현재 스크롤 위치를 저장하고, 새로운 콘텐츠가 추가된 후에 해당 위치로 스크롤을 복원하는 방법도 효과적입니다.

  3. Intersection Observer: 스크롤 이벤트 대신 Intersection Observer API를 사용하여 성능을 개선하는 방법도 고려해볼 수 있습니다. 이 방법은 뷰포트에 요소가 들어올 때 비동기적으로 데이터를 가져오는 데 유용합니다.

관련하여 도움이 될 만한 링크를 추천드립니다:

  • 무한 스크롤 구현에 대한 기본 사례: 리액트와 Next.js로 무한 스크롤을 설정하는 방법에 대해 설명한 게시글을 참고하세요. 이 게시글에서는 페이지가 변경될 때 스크롤을 부드럽게 유지하는 방법도 다룹니다.

무한 스크롤 구현 시 위의 방법을 통해 문제를 해결할 수 있을 것입니다.

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기