inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

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

175

Eric J

작성한 질문수 12

0

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

 

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

react redux node.js express next.js

답변 1

0

인프런 AI 인턴

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

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

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

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

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

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

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

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

넥스트 버젼 질문

0

78

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

372

1

sudo certbot --nginx 에러

0

1275

2

Minified React error 콘솔에러 (hydrate)

0

470

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

327

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

381

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

288

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

239

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1

full reload 될때는 서버 데이터를 호출하는데 그 이후로 새로고침할대는 호출하지 않아서 답답합니다

0

292

2