해커톤
페이지가 렌더링되면 스크롤을 맨 위로 올리기
zza.___.lng
2023. 8. 22. 20:08
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;
}
스크롤을 맨 밑으로 내리고 다른 컴포넌트가 렌더링 되어도 스크롤이 맨 아래인 상태에서 렌더링된다.
위 코드는 새로고침이나 새로운 컴포넌트가 렌더링 됐을 때, 스크롤을 맨 위로 올려주는 함수이다.
import ScrollToTop from "./components/common/ScrollToTop";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<RecoilRoot>
<BrowserRouter>
<ScrollToTop />
<App />
</BrowserRouter>
</RecoilRoot>
</React.StrictMode>
);
함수를 만들고 index.js에서 import하여 넣어주면 새로고침이나 새로운 컴포넌트가 렌더링 됐을 때 스크롤이 맨 위로 올라간 상태로 렌더링 된다!