{"pageProps":{"title":"Usando NProgress em projetos next.js","description":"Vou ensinar como instalar e configurar o NProgress em projetos next.js.","thumbnailUrl":"https://blogdomat.vercel.app/api/thumbnail.png?title=Usando NProgress em projetos next.js&icon=https://cdn.worldvectorlogo.com/logos/logo-javascript.svg","slug":"4-usando-nprogress-em-projetos-next-js","content":"
O NProgress é uma barra que mostra ao usuário o carregamento de uma página apartir do clique em um link, olhe a imagem a seguir:
\nPara instalar você precisa adicionar o NProgress ao projeto com yarn ou npm:
\nyarn add nprogress\n\nnpm install --save nprogress
\nApós a instalação você vai acessar o link para baixar o css do NProgress,\nvocê deverá salvar o arquivo css dentro da pasta public/, ficando assim public/nprogress.css, faremos referencia a esse arquivo depois.
\nAgora abra o arquivo pages/_app.tsx:
\n# Faça a importação do next/router e do NProgress\nimport Router from 'next/router'\nimport NProgress from 'nprogress'\n\n# Import também o next/head, você vai precisar dele\nimport Head from 'next/head'\n\n# Esses são os eventos disparados quando o usuário muda de página\nRouter.events.on('routeChangeStart', () => NProgress.start())\nRouter.events.on('routeChangeComplete', () => NProgress.done())\nRouter.events.on('routeChangeError', () => NProgress.done())\n\n# Por último, dentro do return da função,\n# faça a importação do css do NProgress\n[...]\nreturn (\n <>\n <Head>\n <link rel="stylesheet" type="text/css" href="/nprogress.css" />\n </Head>\n[...]
\nProntinho, o NProgress já está configurado e pronto para ser usado no seu projeto Next.js.
\nVeja como ficará o arquivo _app:
\nimport React from 'react'\nimport Head from 'next/head'\nimport { AppProps } from 'next/app'\nimport Router from 'next/router'\nimport NProgress from 'nprogress'\n\nRouter.events.on('routeChangeStart', () => NProgress.start())\nRouter.events.on('routeChangeComplete', () => NProgress.done())\nRouter.events.on('routeChangeError', () => NProgress.done())\n\nconst MyApp: React.FC<AppProps> = ({ Component, pageProps }) => {\n return (\n <>\n <Head>\n <link rel="stylesheet" type="text/css" href="/nprogress.css" />\n </Head>\n\n <Component {...pageProps} />\n </>\n )\n}\n\nexport default MyApp
\nAcesse o arquivo anteriormente salvo dentro da pasta public/nprogress.css.
\n[...]\n#nprogress .bar {\n background: #29d;\n[...]
\nAltere todas as cores em hexadecimal (#29d) do arquivo, para de sua escolha, por exemplo: (#f0f)
\n[...]\n#nprogress .bar {\n background: #f0f;\n[...]
\nAté mais!
\n"},"__N_SSG":true}