Next.js es un marco poderoso para crear aplicaciones React de alto rendimiento. Una de sus características es la capacidad de crear diseños personalizados para sus páginas, lo que le permite crear un diseño coherente que sea fácil de mantener y actualizar en toda su aplicación.
Creación de un componente de diseño personalizado en Siguiente. JS
En la carpeta denominada componentes en su proyecto Next.js, cree Diseño.jsx y agregue el siguiente código para crear el componente de diseño.
importar Cabeza de'siguiente/cabeza'
importar Encabezamiento de'./Encabezado.jsx'
importar Pie de página de'./Pie de página.jsx'
constante Diseño = (niños) => (
Mi aplicación</title>
"stylesheet" href="/static/css/style.css" />
</Head>
{hijos}
</div>
)
exportar predeterminado Diseño
< p>Este componente importa los componentes de encabezado y pie de página y acepta elementos secundarios como accesorios. Muestra los hijos entre los componentes de encabezado y pie de página. Cuando envuelve una página con este diseño, el encabezado y el pie de página se mostrarán en la parte superior e inferior. Usando el Componente de diseño
Para usar el componente de diseño, impórtelo a un componente de página y utilícelo como se muestra a continuación.
importar Diseño desde '../components/Layout'
const Página = () => (
Inicio</h1>
</Layout>
)
exportar página predeterminada
Aplicará el diseño de esta página. Puede repetir este proceso en todas las páginas a las que desee aplicar el diseño.
Para usar el diseño en todas las páginas de las aplicaciones a la vez, importe el componente de diseño en el archivo /page/_app.js y utilícelo de la siguiente manera.
import Layout from lapso> "../components/layout";
función MyApp({ Componente, pageProps } tramo>) {
return (
</Layout>
) ;
}
Los ejemplos mostrados hasta ahora use las carpetas de 12 páginas de Next.js. En Next.js 13, crea el diseño en la carpeta de la aplicación (al momento de escribir, está en versión beta).
Creación de un diseño personalizado en la carpeta de la aplicación
La carpeta de la aplicación en Next.js 13 requiere que cree un diseño raíz en su base. Este es el diseño que Next.js aplicará a todas las páginas de su aplicación.
Para demostrarlo, cree un archivo llamado layout.jsx y agregue el siguiente código. p>
exportar predeterminado función RootLayout({ niños } tramo>) {
volver (
"en">
{niños}</body>
</html>< br/> );
}
El componente de diseño raíz acepta y representa el niños. A continuación se presentan algunas de las cosas que debe saber sobre un diseño raíz:
- Debe incluirlo en la carpeta de la aplicación.
- Reemplaza a _app.js y _document.js en la carpeta de páginas de Next.js 12.
- Tienes que incluir explícitamente el HTML y la etiqueta del cuerpo.
- Es un componente de servidor por defecto.
Como se mencionó, el diseño raíz se aplica a todas las páginas, entonces, ¿cómo se crean diseños personalizados para diferentes segmentos de ruta?
En la carpeta de su aplicación, puede definir una ruta creando carpetas para cada ruta segmento. Por ejemplo, la creación de una carpeta llamada artículos se asigna a la ruta de URL aplicación/artículos. Para agregar más segmentos de ruta, cree una subcarpeta dentro de la carpeta de ruta principal. Por ejemplo, agregar una carpeta llamada tendencias dentro de la carpeta artículos se asigna a la ruta de la URL. app/articles/trending.
Cuando agrega un componente layout.jsx a una carpeta de ruta, se aplicará a todas las páginas dentro de esa segmento de ruta y sus subcarpetas. Por ejemplo, agregar un componente de diseño a la carpeta artículos se aplicará a todas las páginas de la ruta de artículos, incluidas las de la subcarpeta tendencia. Si también agrega un componente de diseño en la carpeta tendencias, el diseño en la carpeta de artículos se anidará dentro de ella.
Ventajas de usar diseños
Next.js le permite crear componentes de diseño que puede reutilizar en diferentes paginas Esto le permite tener una apariencia uniforme en su sitio web sin duplicar el código en varias páginas. Además, los diseños lo ayudan a implementar cambios rápidamente porque no necesita realizar cambios en cada página.