Next.js - Enrutamiento
Next.js usa un enrutador basado en el sistema de archivos. Siempre que agreguemos una página apagesdirectorio, está automáticamente disponible a través de url. Las siguientes son las reglas de este enrutador.
Index Routes- Un archivo index.js presente en una carpeta se asigna a la raíz del directorio. Por ejemplo
pages / index.js se asigna a '/'.
pages / posts / index.js se asigna a '/ posts'.
Nested Routes- Cualquier estructura de carpetas anidadas en el directorio de páginas porque la URL del enrutador automáticamente. Por ejemplo
pages / settings / dashboard / about.js se asigna a '/ settings / dashboard / about'.
pages / posts / first.js se asigna a '/ posts / first'.
Dynamic Routes- Podemos usar el parámetro con nombre también para hacer coincidir la URL. Use corchetes para lo mismo. Por ejemplo
pages / posts / [id] .js se asigna a '/ posts /: id' donde podemos usar URL como '/ posts / 1'.
pages / [usuario] /settings.js se asigna a '/ posts /: user / settings' donde podemos usar URL como '/ abc / settings'.
pages / posts / [... all] .js se asigna a '/ posts / *' donde podemos usar cualquier URL como '/ posts / 2020 / jun /'.
Vinculación de página
Next.JS permite vincular páginas en el lado del cliente utilizando el componente Link react. Tiene las siguientes propiedades:
href- nombre de la página en el directorio de páginas. Por ejemplo/posts/first que se refiere a first.js presente en el directorio pages / posts.
Creemos un ejemplo para demostrar lo mismo.
En este ejemplo, actualizaremos index.js y la página first.js para que un servidor acceda a obtener datos.
Actualicemos el proyecto nextjs utilizado en el capítulo Soporte global de CSS .
Actualice el archivo index.js en el directorio de páginas de la siguiente manera.
import Link from 'next/link'
import Head from 'next/head'
function HomePage(props) {
return (
<>
<Head>
<title>Welcome to Next.js!</title>
</Head>
<div>Welcome to Next.js!</div>
<Link href="/posts/first">> <a>First Post</a></Link>
<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 el servidor Next.js
Ejecute el siguiente comando para iniciar el 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 salida
Abra localhost: 3000 en un navegador y verá el siguiente resultado.
Haga clic en el enlace Primera publicación.