title: '新增page loading的進度條' date: '2023-08-16' tag: ["blog"]
pnpm add nprogress
pnpm add -D @types/nprogress
在pages/_app.tsx新增
import 'nprogress/nprogress.css';
import { useRouter } from 'next/router'; import NProgress from 'nprogress'; import { useEffect } from 'react';
function MyApp({ Component, pageProps }: AppProps) {
const router = useRouter();
// Integrate nprogress
useEffect(() => {
router.events.on('routeChangeStart', () => NProgress.start());
router.events.on('routeChangeComplete', () => NProgress.done());
router.events.on('routeChangeError', () => NProgress.done());
...
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
這樣就可以在等待的時候看到藍色進度條了🎉
ref
- https://www.npmjs.com/package/nprogress
- https://learnjsx.com/category/4/posts/nextjs-nprogress#google_vignette