반응형
React를 이용하여 페이지 제작 시에 페이지 이동을 Router를 사용하게 되는데, 이때 기본적으로는 스크롤 위치가 이동하지 않습니다.
흔히 웹페이지를 이용해본 사람이라면, 페이지 이동이나 화면 전환이 된 경우 페이지를 맨 위에부터 보기를 원하는데, Router는 스크롤이 해당 위치에 머물게 됩니다.
이를 해결하기 위해서는, 페이지 이동을 인식한 경우, Scroll의 위치를 조정해주면 되는데, 이에 대한 자세한 내용은 아래의 사이트에 잘 정의되어있습니다.
https://v5.reactrouter.com/web/guides/scroll-restoration
Declarative routing for React apps at any scale | React Router
Version 6 of React Router is here! React Router v6 takes the best features from v3, v5, and its sister project, Reach Router, in our smallest and most powerful package yet.
reactrouter.com
그중에서 하나를 발췌해보면,
// ScrollToTop.js
import { useEffect } from "react";
import { useLocation } from "react-router-dom";
export default function ScrollToTop() {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
}
페이지 이동시에 Scroll 위치를 조정해 줄 ScrollToTop.js 페이지를 만들고,
// App.js
import { BrowserRouter } from 'react-router-dom';
import ScrollToTop from './ScrollToTop';
function App() {
return (
<BrowserRouter>
<ScrollToTop />
<... />
</BrowserRouter>
);
}
App.js 파일 내용은 기존 사이트 내용과 좀 다르게 작성되었습니다.
<... />은 기존에 작성하는 Reac app이나 html 태그 정보들입니다.
반응형
'개발 창고 > Web' 카테고리의 다른 글
[CSS] Elemnt 스타일 초기화 (0) | 2022.10.07 |
---|---|
[React] 환경변수(.env) 사용하기 (0) | 2022.09.15 |
[Javascript] 파일 사이즈 계산 함수 (0) | 2022.04.11 |
[Javascript] 스크립트 내에서 js 파일 호출하기 (4) | 2022.03.31 |
[OZ Report] 텍스트 HTML로 변환 (0) | 2022.02.18 |