Conceptos básicos de Next.js 14

1

¿Qué es Next.js y por qué aprenderlo si quieres ser frontend senior?

2

Arquitectura de un proyecto de Next.js

3

Herramientas y stack utilizado en el curso

4

Cómo crear rutas en Next.js

5

Cómo crear Layout en Next.js

6

Cómo funciona la navegación en Next.js

7

Manejo de parámetros en rutas en Next.js

8

React Server Components en Next.js: notación "use Client"

9

Creación de arquitectura de landing page en Next.js

Quiz: Conceptos básicos de Next.js 14

Manejo de estilos y estáticos en Next.js 14

10

CSS Modules en Next.js 13

11

Uso de Sass en Next.js

12

Cómo utilizar estilos globales en Next.js

13

Cómo agregar archivos estáticos en Next.js

14

Manejo y optimización de imágenes con Next Image

15

Optimización del componente image en Next.js

16

Optimización de fuentes con Next.js

17

Creando estilos dinámicos aplicando condicionales en Next.js

Quiz: Manejo de estilos y estáticos en Next.js 14

Data Fetching en Next.js

18

Creación de tienda de Shopify para un proyecto en Next.js

19

Manejo de variables de entorno en Next.js

20

Cómo obtener información de una API con Next.js

21

Manejo de estado de carga con el archivo loading.tsx

22

Route Grouping en Next.js

23

Manejo de errores en la UI con el archivo error.tsx

Quiz: Data Fetching en Next.js

Next.js Avanzado

24

Implementando páginas de Not Found y error global

25

Cómo impactan los React Server Components en un proyecto en Next.js

26

Cuándo utilizar layout o template en Next.js

27

Arquitectura profesional para data fetching en un proyecto en Next.js

28

Next.js para backend: manejando rutas con archivos Route Handlers

29

Proyecto: implementando la página de tienda

30

Patrones de data fetching en Next.js

31

Proyecto: filtrando categorías de productos

32

Data fetching de parámetros en el servidor y cliente

33

Proyecto: página de producto y arreglos en el sitio

34

Cómo funciona el Fetch y el Caché de Next.js

35

Revalidando cache con revalidateTag y revalidatePath en Next.js

36

Cómo hacer redirects en Next.js

37

Proyecto: HTML dinámico en la descripción del producto

38

Mejorando SEO de una página en Next.js

Quiz: Next.js Avanzado

Autenticación y autorización

39

Manejando autenticación y autorización con Storefront APÏ de Shopify

40

Server Actions en Next.js

41

Proyecto: proceso de Sign-Up con GraphQL

42

Manejo de cookies para colocar un token de acceso de un proyecto en Next.js

43

Cómo implementar un flujo de login en un proyecto en Next.js

44

Validando token de acceso de usuario en un proyecto en Next.js

45

Proyecto: implementando el carrito de compras

46

Manejo de estado global con zustand en Next.js

47

Proyecto: agregando items al carrito de compras

48

Cómo integrar el checkout de Shopify a un proyecto en Next.js

49

Implementar middleware en proyecto en Next.js para protección de rutas

Inteligencia Artificial

50

Creando componente de chatbot de ventas con la SDK IA de Vercel

51

Implementación de un bot de ventas en una app Next.js

Performance

52

Optimización de carga con parallel routing en Next.js

53

Análisis de bundle para Next.js 14

Quiz: Performance

Frontend Ops

54

Edge runtime

55

Despliegue de un proyecto Next.js en Vercel

56

Mejores prácticas en arquitecturas empresariales

Quiz: Frontend Ops

Next.js es parte de tu nuevo stack

57

¡Has creado un proyecto en Next.js!

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
3 Hrs
7 Min
16 Seg
Curso de Next.js 14

Curso de Next.js 14

Enrique Devars

Enrique Devars

Cómo crear rutas en Next.js

4/57
Resources

What are static and dynamic routes in Next.js?

Next.js, one of the most popular frameworks for building React applications, deftly handles two main types of routes: static and dynamic. Understanding these distinctions is vital to designing efficient and robust applications. Static routes are those with a predefined fixed path within our project, while dynamic routes adapt depending on the URL entered, providing flexibility and scalability to the application.

How to create static routes?

Creating static routes in Next.js is an intuitive process, which is based on the project's file and directory structure-often referred to as "file system-based routing". Suppose you are developing an online store. You can define static routes by creating a specific directory and a corresponding page.tsx file, making it unnecessary to import React explicitly. This simplicity is one of the major attractions of the framework.

For example, to define the main store path:

// Inside the file store/page.tsxexport default function Store() { return <h1>Store</h1>;}

Why use dynamic routes?

Dynamic routes become crucial when our URL's must adapt to changing data, such as when browsing product categories that we might get from an API. In Next.js, these routes are defined by directories with the parameter name surrounded by square brackets.

For example, to handle categories in an online store:

// Inside the file store/[category]/page.tsxinterface CategoryProps { params: { category: string; };}; }
export default function Category({ params }: CategoryProps) { return<h1>Dynamic   category: {params.category}</h1>;}

Here, params.category allows access to the dynamic path segment, making it easy to use URL-specific data such as a title or to query an API. This not only simplifies code organization, but also improves performance by avoiding unnecessary loading and re-rendering of components.

How to get the most out of Next.js file system-based routing?

Next.js file system-based routing offers an opportunity to atomize components, improving application maintainability by segmenting logic into smaller, specialized pieces. By preferring this model over a lump of components in a single file, you not only keep the code cleaner, but also more efficient.

When designing, ask yourself how you can break down functionality into clear, reusable segments within your application. Can each product category in your store be an individual component? If so, each component can be managed in isolation, optimizing rendering and data consumption. Thus, when changes occur, the impact is minimized and it is easier to adapt the code to new functionalities or fixes.

The joint use of static and dynamic routes in Next.js offers a powerful tool to build web applications that are not only functional but also elegant and easy to maintain. Let's always keep in mind the balance between simplicity and scalability, ensuring that each path reinforces the structure and efficiency of our project.

Contributions 18

Questions 5

Sort by:

Want to see more contributions, questions and answers from the community?

Rutas Estáticas:
Son rutas cuyos paths o URL son definidos de manera estática. Esto significa que el contenido asociado a estas rutas se genera durante la fase de compilación y no cambia después de que la aplicación ha sido construida y desplegada.

  • En Next.js, las rutas estáticas son típicamente creadas en el directorio pages de tu proyecto. Cada archivo en pages se convierte en una ruta estática.
pages/
├── index.js        // Ruta estática: /
├── about.js        // Ruta estática: /about
├── contact.js      // Ruta estática: /contact

En este ejemplo, /, /about, y /contact son rutas estáticas porque sus paths son definidos de manera fija y no cambian durante la ejecución de la aplicación.

Rutas Dinámicas:
Son rutas que pueden cambiar dinámicamente en función de parámetros específicos que se incluyen en la URL. Esto permite crear páginas que pueden manejar diferentes contenidos según los valores de los parámetros.

  • En Next.js, puedes lograr rutas dinámicas utilizando corchetes [] en los nombres de los archivos en el directorio pages.
pages/
├── posts/
│   ├── [id].js     // Ruta dinámica: /posts/[id]
│   ├── latest.js   // Ruta estática: /posts/latest

En este ejemplo, /posts/[id] es una ruta dinámica porque [id] es un marcador de posición para un parámetro que puede variar en cada solicitud. Puedes tener URLs como /posts/1, /posts/2, etc., y el valor de id se utiliza para personalizar el contenido de la página.

En resumen, las rutas estáticas se definen con paths fijos y su contenido se genera durante la compilación, mientras que las rutas dinámicas permiten manejar parámetros que pueden cambiar en función de la URL solicitada. Next.js ofrece una forma conveniente de trabajar con ambos tipos de rutas y proporciona una gran flexibilidad para desarrollar aplicaciones web. (Créditos a chatgpt)

por que nunca me salen las rutas si lo hago igual que en la clase, me sale que no encontró la pagina
Cuál es el tipado de next js para los params para acceder a ellos sin crear la interfaz? Next creo que debe tener esa interfaz creada y solo habría que importarla.
Actualmente, al usar next js 15, arroja un mensaje de error al obtener las propiedades y es que ahora se aconseja obtenerlas de manera asyncrona. Aunque el ejercicio que hacemos funciona y se muestra en pantalla... se debe tener en cuenta este detalle.
no entendí la parte de la configuracion de los props. Entiendo que eso eso parte de Typescript.
al hacerlo tal cual como esta en la clase me sale ester eroro, aunque la categoria si se imprime en el html, ![](https://static.platzi.com/media/user_upload/2024-10-27_07h43_38-7c03d029-7306-4401-873a-7e528eb615ae.jpg)
![](https://static.platzi.com/media/user_upload/image-5dc25867-0e89-4a97-86a1-b52debeea7c1.jpg) jeje
yo lo hice de esta formaimport { FC } from "react"; interface CategoryProps { params: { category: string }; searchParams: {};} const Category: FC\<CategoryProps> = ({ params }) => { const { category } = params; return \

Ruta dinamica : {category}\

;}; export default Category; ```js import { FC } from "react"; interface CategoryProps { params: { category: string }; searchParams: {}; } const Category: FC<CategoryProps> = ({ params }) => { const { category } = params; return

Ruta dinamica : {category}

; }; export default Category; ```
Creo que es bueno dejar saber que para que funcione el componente page debe ser exportado como default
De la manera que está en el curso no me dio la ruta, pero esta es mi sollución: `interface CategoryProps { params: { caregory: string }, searchParams: {}}` `export default function Category(``props``: CategoryProps) { const categoryID = ``props``.params.caregory` ` return (
Categoria: {categoryID}
)}`
Hola, para los que seguimos usando el comando latest para la creación de la app encontramos que para NextJS +15 el manejo de rutas dinamicas cambio: ```js interface CategoryProps { params: { category: string; } } export default async function Category(props: CategoryProps) { const { category } = await props.params; console.log(category); return (

Category

); } ```A partir de esta versión, los parámetros (`params`) se pasan como promesas, lo que significa que se debe manejar su resolución de manera asíncrona.
```js Para version 15 me quedo : const HistorialTasas = async ({ params }: { params: Promise<{ category: string }> }) => { const resolvedParams = await params; // Esperar a que se resuelva const category = resolvedParams.category; return (

Categoría: {category}

); }; export default HistorialTasas; ```
Atomizar componentes se refiere a dividir una aplicación en componentes más pequeños y reutilizables. En el contexto de Next.js, esto permite crear estructuras más limpias y mantenibles. Al hacerlo, cada componente puede encargarse de una parte específica de la funcionalidad o presentación, lo que mejora la organización del código y la eficiencia en el rendimiento. Además, facilita la prueba y la reutilización de cada parte de la aplicación. Esta práctica es esencial para desarrollar aplicaciones escalables y de alto rendimiento.
Para los que no le salió como en el curso, muestro mi solución en Next.js 15:```js import React from 'react'; import { Params } from 'next/dist/server/request/params'; const HistorialTasas = async ({params}:{params:Params}) => { const id = await params.id; return (

Ruta Dinamica: {id}

) } export default HistorialTasas ```
Hola, cual es el nombre de la tipografia si alguien sabe.
Porque utilizas function y no utilizas const y luego lo exportas? me gustaria saber tu opinion personal ![](https://static.platzi.com/media/user_upload/image-3e65e819-debd-4165-abd3-f9166da245c5.jpg)![]()
**Rutas Estáticas:** Son rutas cuyos paths o URL son definidos de manera estática. Esto significa que el contenido asociado a estas rutas se genera durante la fase de compilación y no cambia después de que la aplicación ha sido construida y desplegada. * En Next.js, las rutas estáticas son típicamente creadas en el directorio `app` de tu proyecto. Cada archivo en `app` se convierte en una ruta estática. ```txt app/ ├── page.jsx // Ruta estática: / ├── about │ ├── page.jsx // Ruta estática: /about ├── contact │ ├── page.jsx // Ruta estática: /contact ``` En este ejemplo, `/`, `/about`, y `/contact` son rutas estáticas porque sus paths son definidos de manera fija y no cambian durante la ejecución de la aplicación. **Rutas Dinámicas:** Son rutas que pueden cambiar dinámicamente en función de parámetros específicos que se incluyen en la URL. Esto permite crear páginas que pueden manejar diferentes contenidos según los valores de los parámetros. * En Next.js, puedes lograr rutas dinámicas utilizando corchetes `[]` en los nombres de los archivos en el directorio `app`. ```txt app/ ├── posts/ │ ├── [id] │ │ ├── page.js // Ruta dinámica: /posts/[id] │ ├── latest.js │ │ ├── page.js // Ruta estática: /posts/latest ``` En este ejemplo, `/posts/[id]` es una ruta dinámica porque `[id]` es un marcador de posición para un parámetro que puede variar en cada solicitud. Puedes tener URLs como `/posts/1`, `/posts/2`, etc., y el valor de `id` se utiliza para personalizar el contenido de la página. En resumen, las rutas estáticas se definen con paths fijos y su contenido se genera durante la compilación, mientras que las rutas dinámicas permiten manejar parámetros que pueden cambiar en función de la URL solicitada. Next.js ofrece una forma conveniente de trabajar con ambos tipos de rutas y proporciona una gran flexibilidad para desarrollar aplicaciones web.
<https://www.notion.so/C-mo-crear-rutas-en-Next-js-a9ba885be04f408a917ed753c352f104?pvs=4>