⊗jsnxPmLtPR 40 of 57 menu

Enrutamiento Paralelo en NextJS

En NextJS es posible hacer que una parte del sitio muestre contenido diferente dependiendo de la URL solicitada. Esto se llama enrutamiento paralelo.

Veamos un ejemplo. Supongamos que tenemos el siguiente diseño de sitio:

export default function RootLayout({children}) { return ( <html lang="en"> <body> <header> encabezado </header> <main> {children} </main> <footer> pie de página </footer> </body> </html> ); }

Supongamos que queremos que en el encabezado se muestre información dinámica. Que en la URL /users se muestre un componente con usuarios, y en la URL /posts un componente con publicaciones.

Para este enrutamiento paralelo es necesario crear una carpeta especial, comenzando su nombre con el símbolo @. Para el ejemplo, llamemos a nuestra carpeta @info.

En esta carpeta colocaremos dos componentes. El primero para mostrar usuarios en la carpeta /users/, y el segundo para mostrar publicaciones en la carpeta /posts/. Obtendremos la siguiente estructura de archivos:

  • /app/
    • /@info/
      • /users/
        • page.jsx
      • /posts/
        • page.jsx

Ahora necesitamos en el diseño del sitio escribir un comando especial para la inserción. Para esto es necesario utilizar una ranura dinámica especial.

Para entender qué es, primero mire el parámetro de la función de nuestro diseño de sitio:

export default function RootLayout({children}) { return ( ); }

Preste atención al hecho de que como parámetro se nos pasa un objeto, del cual extraemos el contenido del sitio en la variable children.

En este objeto puede haber otras claves. Estas corresponden a aquellas carpetas cuyo nombre comenzamos con @.

En nuestro caso, tenemos la carpeta @info, lo que significa que tendremos disponible la variable info, que dependiendo de la URL contendrá el texto de uno de los componentes - usuarios o publicaciones. Obtengamos esta variable:

export default function RootLayout({children, info}) { return ( ); }

Ahora dentro del maquetado del diseño podemos mostrar la variable info. En este lugar, dependiendo de la URL, se insertará el texto de uno de nuestros componentes:

export default function RootLayout({children, info}) { return ( <html lang="en"> <body> <header> <div> {info} </div> </header> <main> {children} </main> <footer> pie de página </footer> </body> </html> ); }

Cree una ranura dinámica para la barra lateral derecha.

Cree una ranura dinámica para la barra lateral izquierda.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar