개발자

react infinite scroll 최적화 방법?

2023년 03월 02일조회 275

리액트 웹 앱에서 인피니트 스크롤을 적용하고 있는데요. 컨텐츠가 적을때는 크게 이슈가 없었는데 많으니까 버벅거리기 시작하더라구요. 코드를 첨부하기가 애매한 상황인데, 제가 적용한 방법을 공유하자면 우선 react-query로 각 페이지 데이터를 캐싱하고 있구요. 인피니트 스크롤 속 아이템들은 key를 id 값으로 지정하고 memo로 감싸놓은 상태입니다. 이렇게 했을때 버벅거림이 어느정도 해소가 되기는 하는데, 여기서 더 최적화 할 수 있는 방법이 있는지 궁금합니다. 혹시 좋은 방법이 있으시면 공유 부탁드립니다. 감사합니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

인기 답변

손정현님의 프로필 사진

안녕하세요! 버벅거림이 어떤 경우에서 발생하는지 좀 더 설명해주시면 답변하는데 도움이 될 것 같습니다. 우선 리액트 디버그 툴을 써서 프로파일링을 해보시면 좋을 것 같아요. 단순히 DOM에 붙어있는 노드가 너무 많은 것이 문제라면 뷰포트에 보일 때 허용된 크기만큼만 리스트 아이템을 DOM에 더해주고 안보이면 DOM에서 삭제시켜주는 기능을 추가하시면 도움이 될 것 같습니다. windowing이라고 많이 하는 기법이에요. 많이 알려진건 react-window가 있습니다. - https://github.com/bvaughn/react-window 하지만 react-query를 쓰신다고 하셨으니, react-query를 만든 분이 개발하신 tanstack virtual도 한번 살펴보시는 걸 추천드립니다 :) - https://tanstack.com/virtual/v3

profile picture

익명

작성자

2023년 03월 06일

오 자세한 설명 감사합니다 정현님!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!