{"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 que é NProgress?

\n

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:

\n

\"image\"

\n

Como instalar?

\n

Para instalar você precisa adicionar o NProgress ao projeto com yarn ou npm:

\n
yarn add nprogress\n\nnpm install --save nprogress
\n

Apó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.

\n

Agora 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[...]
\n

Prontinho, o NProgress já está configurado e pronto para ser usado no seu projeto Next.js.

\n

Veja como ficará o arquivo _app:

\n
import 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
\n

Alterando a cor da barra 💥

\n

Acesse o arquivo anteriormente salvo dentro da pasta public/nprogress.css.

\n
[...]\n#nprogress .bar {\n  background: #29d;\n[...]
\n

Altere todas as cores em hexadecimal (#29d) do arquivo, para de sua escolha, por exemplo: (#f0f)

\n
[...]\n#nprogress .bar {\n  background: #f0f;\n[...]
\n

Até mais!

\n"},"__N_SSG":true}