Next.js - Roteamento imperativo

No Next.js, até agora estamos usando o componente Link react para navegar de uma página para outra. Também existe uma maneira programática de obter o mesmo usando o componente Roteador. Geralmente o componente roteador é usado com tags html.

Atualize o arquivo index.js no diretório de páginas conforme a seguir.

import Router from 'next/router'
import Head from 'next/head'

function HomePage(props) {
   return (
      <>
         <Head>
            <title>Welcome to Next.js!</title>
         </Head>
         <div>Welcome to Next.js!</div>
         <span onClick={() => Router.push('/posts/one')}>First Post</span>
         <br/>
         <div>Next stars: {props.stars}</div>
         <img src="/logo.png" alt="TutorialsPoint Logo" />
      </>	    
   )
}

export async function getServerSideProps(context) {
   const res = await fetch('https://api.github.com/repos/vercel/next.js')
   const json = await res.json()
   return {
      props: { stars: json.stargazers_count }
   }
}

export default HomePage

Inicie o servidor Next.js

Execute o seguinte comando para iniciar o servidor -.

npm run dev
> [email protected] dev \Node\nextjs
> next

ready - started server on http://localhost:3000
event - compiled successfully
event - build page: /
wait  - compiling...
event - compiled successfully
event - build page: /next/dist/pages/_error
wait  - compiling...
event - compiled successfully

Verificar saída

Abra localhost: 3000 em um navegador e você verá a seguinte saída.

Clique em Primeira postagem, que não é um link, mas é clicável.