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!

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

Antes: $249

Currency
$209
Suscríbete

Termina en:

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

Curso de Next.js 14

Enrique Devars

Enrique Devars

Arquitectura de un proyecto de Next.js

2/57
Resources
Transcript

How to create a project in Next.js using TypeScript?

Starting a project in Next.js is simple and efficient thanks to the create-next-app command. This tool not only sets up the necessary project structure, but also allows you to integrate TypeScript, an option that is highly recommended. To get started, it is essential to have Node.js installed, as the command requires nbx.

When creating a project, you can include options that improve organization and development, such as:

  • Integrate Slint to verify code quality.
  • Exclude Tailwind if it is not necessary.
  • Include the source directory for better code organization.
  • Using the app-router, the new Next.js methodology for handling routing, which we will explore in more detail on other occasions.

Project configuration in Next.js

During the initial setup, you have the option to customize an import alias to make it easier to manage the modules in your project. Once configured, Next.js requires few dependencies, both for development and production:

  • Production: react, react-dom, next.
  • Development: typescript, eslint.

With the project created, it is a good idea to explore it with a tool such as Visual Studio Code to familiarize yourself with the general structure.

What is the Next.js project architecture?

The Next.js architecture efficiently organizes the different files and folders that make up a project:

The package.json file and key scripts.

Inside the package.json file, you will find the scripts that execute the main tasks:

  • next dev: Starts the development server to view changes in real time.
  • next build: Compiles the project for production.
  • next start: Starts the project in production mode.
  • next lint: Verifies that the code meets the defined quality standards.

Routing with the app-router

In the source folder is located the app-router, which contains vital files for the project configuration:

  • Favicon: It is placed in the root of the app folder.
  • Globals.css: Where global CSS styles and variables are defined.
  • Layout.tsx: Acts as a wrapper for the whole application and is known as root layout.
  • Page.module.css: Uses CSS modules to apply organized styles.
  • Page.tsx: Defines the main page visible in the browser.

Additional resources: configuration and cache

Besides the main organization, there are other important aspects to consider:

The public folder and configuration with next.config.js.

Inside the public folder are stored all resources that should be publicly accessible, such as images and fonts. The next.config.js file is crucial for advanced configurations, including SAS compilers and complex Webpack configurations.

The importance of tsconfig.json and the .next folder

The tsconfig.json file handles TypeScript-specific configurations and defines the paths for dynamic aliases. Finally, the .next folder, generated during the build of the project, stores the cached files. In case of problems such as persistent caches of styles or components, it is recommended to delete this folder to fix common errors.

Next.js automates many architectural decisions, allowing developers to focus on creating functional and robust applications. Ready to get started with your next Next.js project? Take the time to explore and fully understand each of these components to maximize the efficiency and quality of your development. Go ahead and keep learning and exploring new technologies in the exciting world of web programming!

Contributions 24

Questions 6

Sort by:

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

note: No es necesario el flag '--ts' al crear el proyecto. Entre las preguntas que te hace, te pregunta si quieres usar typescript ;)
Algo a tener en cuenta es que la version minima requerida de node es la 18.17.0
Me parece una falta de respeto que los profesores nunca pongan el nombre del tema para VSCode que ocupan 🤣

a mi me gusta mucho Tailwind. Q lastima q no lo usen

como el curso trata sobre la version 14 el comando es ```js npx create-next-app@14 ```
Resumen clase 2 - 25/02/2024 ```js # TOP Levels Folders Son usadas para organizar nuestra aplicacion y recuros estaticos: app App Router pages Pages Router public Static assets to be served src Optional application source folder # TOP LEVELS FILES Son usadas para configurar nuestra aplicacion, manejar dependencias, correr middleware, integrar herramientas de monitoreo y definir variables de entorno. next.config.js Configuration file for Next.js package.json Project dependencies and scripts instrumentation.ts OpenTelemetry and Instrumentation file middleware.ts Next.js request middleware .env Environment variables .env.local Local environment variables .env.production Production environment variables .env.development Development environment variables .eslintrc.json Configuration file for ESLint .gitignore Git files and folders to ignore next-env.d.ts TypeScript declaration file for Next.js tsconfig.json Configuration file for TypeScript jsconfig.json Configuration file for JavaScript # APP ROUTING CONVENTIONS Dentro del App router pueden existir estos archivos: layout Layout page Page loading Loading UI not-found Not found UI error Error UI global-error Global error UI route endpoint template Re-rendered layout default Parallel route fallback page - Pero adicionalmente ofrece otros features como: [x] Nested Routes [x] Dynamic Routes [x] Route Groups and Private Folders [x] Parallel and Intercepted Routes [x] Metadata File Conventions [x] Open Graph and Twitter Images [x] SEO ```Ref: \[Next.js Project Structure]\(<u>https://nextjs.org/docs/getting-started/project-structure</u>)
Primer comentario 😅
Estaba esperando este curso. nota: cuando usamos el npx create-next-app@latest no pasa nada si se nos olvida colocarle el flag --ts, ya que mas adelante nos lo preguntara 'Deseas usar TypeScript en este proyecto?' Éxitos para todos
Hola! Como podría actualizar la versión de Node Js por la última? ![](https://static.platzi.com/media/user_upload/image-bb91bfb6-73b2-4732-be81-b7b4b0bdad33.jpg) He intentado con los comandos: * sudo npm install -g n * sudo n stable Muchas gracias!!
El uso de `pnpm` en lugar de `npm` es una excelente recomendación, ya que `pnpm` gestiona las dependencias de manera más eficiente, lo que puede resultar en un mejor rendimiento y un menor uso de espacio en disco. Utiliza enlaces simbólicos para compartir las dependencias, lo que minimiza la duplicación. Esto es especialmente útil en proyectos grandes como los desarrollados en Next.js. Considera seguir esta recomendación para optimizar tu flujo de trabajo en el desarrollo de aplicaciones con Next.js.
Puedes usar `npm run dev --turbo` . Con esto puedes usar turbo pack.
### **###🚀 App Router vs Pages Router** Next.js tiene dos enrutadores diferentes: App Router y Pages Router. **App Router** es un enrutador más nuevo que le permite utilizar las funciones más recientes de React, como Server Components. Pages Router es el enrutador Next.js original, que le permitió a crear aplicaciones React renderizadas en el servidor utilizando `getStaticProps` y `getServerSideProps` y continúa siendo compatible con aplicaciones Next.js más antiguas. . Ten esto presente porque hay mucha información sobre Pages Router (ya que estuvo varios años en funcionamiento). Puedes revisar la documentación de Next.js para que veas las diferencias <https://nextjs.org/docs>, hay menú desplegable que muestra “Using App router” o “Using Pages router”.
Qué tema de VSCode es ese??? :o
hay algo curioso, no se si solo es a mi, que del min 2.53 al min 3 no carga, toca adelantar hasta el min 3 para que continue y mientras escribo, pasa algo de que se pixela algunas zonas de la pagina

npx create-next-app@latest --ts

Muy entusiasmado de realizar este curso! Que tengan todos un muy buen día
CSS Modules en Next.js se utiliza para estilizar componentes de manera modular, ofreciendo varios beneficios: 1. **Aislamiento de estilos**: Cada módulo CSS se aplica solo al componente asociado, evitando conflictos. 2. **Nombres únicos**: Los nombres de clase se generan de forma única, asegurando que no haya colisiones. 3. **Importación fácil**: Se pueden importar estilos directamente en el componente usando la sintaxis `import styles from './styles.module.css';`. 4. **Soporte para preprocesadores**: Puedes usar Sass o Less junto con CSS Modules para mayor flexibilidad. Este enfoque mejora la organización y la mantenibilidad del código en proyectos Next.js.
El App Router en Next.js es una característica fundamental que organiza la estructura de la aplicación. Aquí tienes un esquema: 1. **Ubicación**: Se encuentra en la carpeta `app` dentro del proyecto. 2. **Archivos clave**: - `layout.tsx`: Estructura la aplicación, funcionando como un contenedor. - `page.tsx`: Define la página principal, donde se renderiza el contenido. - `globals.css`: Estilos globales aplicables a toda la aplicación. 3. **Funciones**: - Permite enrutamiento dinámico y anidado. - Optimiza el manejo de componentes y el rendimiento. 4. **Beneficios**: - Mejora la organización del código. - Facilita la reutilización de componentes.
`next dev` inicia el servidor de desarrollo, permitiendo ver cambios en tiempo real y habilitando el hot reloading. Es ideal para el desarrollo, ya que refleja modificaciones al instante. Por otro lado, `next start` se utiliza para iniciar la aplicación en modo producción, después de haber construido el proyecto con `next build`. En este modo, la aplicación es optimizada para un rendimiento eficiente en un entorno de producción.
Para hacerlo con PNPM el comando es: `pnpm create next-app --ts`
🚀 App Router vs Pages Router Next.js tiene dos enrutadores diferentes: App Router y Pages Router. . App Router es un enrutador más nuevo que le permite utilizar las funciones más recientes de React, como Server Components. Pages Router es el enrutador Next.js original, que le permitió a crear aplicaciones React renderizadas en el servidor utilizando getStaticProps y getServerSideProps y continúa siendo compatible con aplicaciones Next.js más antiguas. . Ten esto presente porque hay mucha información sobre Pages Router (ya que estuvo varios años en funcionamiento). Puedes revisar la documentación de Next.js para que veas las diferencias <https://nextjs.org/docs>, hay menú desplegable que muestra “Using App router” o “Using Pages router”.
### **🚀 App Router vs Pages Router** Next.js tiene dos enrutadores diferentes: App Router y Pages Router. **App Router** es un enrutador más nuevo que le permite utilizar las funciones más recientes de React, como Server Components. Pages Router es el enrutador Next.js original, que le permitió a crear aplicaciones React renderizadas en el servidor utilizando `getStaticProps` y `getServerSideProps` y continúa siendo compatible con aplicaciones Next.js más antiguas. . Ten esto presente porque hay mucha información sobre Pages Router (ya que estuvo varios años en funcionamiento). Puedes revisar la documentación de Next.js para que veas las diferencias <https://nextjs.org/docs>, hay menú desplegable que muestra “Using App router” o “Using Pages router”.
minuto 3:04 A mi en el package.json no me sale nada de eso, sino otras cosas. Tengo que ir agregando manualmente? me saqué de onda.
Actualmente tengo la version de node v20.10.0 y al genera el proyecto con el comando. En el archivo tsconfig.json me da el siguiente error. ![](https://static.platzi.com/media/user_upload/image-e6fb74ae-6083-4a31-9c46-1b283e36e709.jpg) Y por ende al importar me sale error. ![](https://static.platzi.com/media/user_upload/image-9a6df9e7-c9c7-4589-8d67-ea00edb80dc1.jpg) Me pueden ayudar con una solución, de antemano gracias.