NEXTjs Build indicator 대신 Loading spinner로 변경하기
Nextjs
에서 페이지 이동시 혹은 페이지 진입시build
과정 동안 우측 하단에 나타나는Build indicator
대신 페이지의Loading Spinner
를 띄우기 위해 공식 문서를 참조하여 적용해보았다.
Build Activity deActivate
// next.config.js
module.exports = {
devIndicators: {
buildActivity: false,
},
};
build indicator
를 비활성화하기 위해next.config.js
에서 위와 같이 설정해주었다.
Loading spinner
import React, { useState, useEffect } from "react";
//
const HeaderPresenter = (): JSX.Element => {
const router = useRouter();
const [isPageLoading, setIsPageLoading] = useState<boolean>(false);
//
useEffect(() => {
router.events.on("routeChangeStart", () => {
setIsPageLoading(true);
});
//
router.events.on("routeChangeComplete", () => {
setIsPageLoading(false);
});
}, [router]);
//
return (
<StyledHeaderPresenter>
{isPageLoading && <PageLoadingSpinner />}
<StyledMainHeaderConents />
</StyledHeaderPresenter>
);
};
export default HeaderPresenter;
useRouter
에서 제공하는route,events.on
, 즉 페이지를 이동할때(route
가 변경될 때) 상탯값에 따라서Loading spinner
가 렌더링이 되도록 지정해주었다.
Reference
'NEXT' 카테고리의 다른 글
TIL | Next.js 13 간단 정리 (0) | 2022.11.25 |
---|---|
TIL | Nextjs 환경변수 (0) | 2022.01.21 |
TIL | Dynamic import (0) | 2021.10.30 |
TIL | NEXTjs Routing, Dynamic Routes (0) | 2021.10.24 |
TIL | NEXTjs Pre-rendering (0) | 2021.10.24 |