CursosEmpresasBlogLiveConfPrecios

Creando nuestra primera página

Clase 3 de 23 • Curso de Next.js 2018

Clase anteriorSiguiente clase

Contenido del curso

Introducción a Next.JS

  • 1

    ¿Dónde aprender Next.js actualizado?

    00:14 min
  • 2
    ¿Qué es Next.JS?

    ¿Qué es Next.JS?

    01:41 min
  • 3
    Creando nuestra primera página

    Creando nuestra primera página

    Viendo ahora
  • 4
    Styled JSX

    Styled JSX

    09:54 min

Server Side Rendering

  • 5
    Aprende qué es Server Side Rendering

    Aprende qué es Server Side Rendering

    04:15 min
  • 6
    Intro a getInitialProps

    Intro a getInitialProps

    14:44 min
  • 7
    Utilizando el componente Link

    Utilizando el componente Link

    08:01 min
  • 8
    Recibiendo Parámetros

    Recibiendo Parámetros

    13:20 min
  • 9
    Performance de Get Initial Props

    Performance de Get Initial Props

    04:39 min
  • 10
    Vista de Podcasts

    Vista de Podcasts

    02:07 min

Componentes Reutilizables

  • 11
    Creando componentes en React

    Creando componentes en React

    15:16 min
  • 12
    Reorganizar la vista de podcasts

    Reorganizar la vista de podcasts

    03:03 min

Navegación Avanzada

  • 13
    Gestionando Errores

    Gestionando Errores

    14:06 min
  • 14
    Personalizando errores

    Personalizando errores

    10:21 min
  • 15
    ¿Cómo diseñar URLs?

    ¿Cómo diseñar URLs?

    03:34 min
  • 16
    Configurando Next Routes

    Configurando Next Routes

    11:26 min
  • 17
    Implementando Next Routes

    Implementando Next Routes

    08:04 min
  • 18
    Vistas Híbridas

    Vistas Híbridas

    12:56 min
  • 19
    Implementar el Modal

    Implementar el Modal

    06:24 min
  • 20
    Agregando un loader

    Agregando un loader

    03:44 min

Publicando nuestra app

  • 21
    Mejores prácticas en Github

    Mejores prácticas en Github

    04:33 min
  • 22
    Publicar la app con now

    Publicar la app con now

    02:39 min
  • 23
    Conclusiones del curso

    Conclusiones del curso

    01:07 min
Tomar examen
Resumen

Vamos a crear nuestra primera página en Next.js, más que nada para tener una muy buena idea de cómo funciona el router de Next, cómo crear un pequeño componente en React, y sobre todo cómo hacer para crear un buen entorno de desarrollo en un proyecto de Node.
Esto no es solamente para Next, puede aplicar para cualquier proyecto que hagamos en Javascript.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Eddy Arellanes

        Eddy Arellanes

        student•
        hace 8 años

        Curso de Unit Testing de Platzi spoiler alert?

          Fernando Ontiveros

          Fernando Ontiveros

          student•
          hace 8 años

          Ojala !

          Jesús Mur Fontanals

          Jesús Mur Fontanals

          student•
          hace 7 años

          Si! un curso de Unit Testing para React con Jest por favor!!

        Luis Daniel Becerra Avellaneda

        Luis Daniel Becerra Avellaneda

        student•
        hace 8 años
        mkdir podcast cd podcast npm init -y npm add next react react-dom

        O si prefieres utilizar yarn

        yarn init -y yarn add next react react-dom
        Sergio Toshio Minei

        Sergio Toshio Minei

        student•
        hace 7 años

        Iniciar un proyecto con Next

        Instalar las dependencias:

        $ npm add next react react-dom

        Scripts indispensables

        dev: entorno de desarrollo.
        build y start: entorno de producción

        Dentro del package.json, se debe agregar:

        "scripts": { "dev": "next", "build": "next build", "start": "next start" }

        Ruteo

        Next busca automáticamente todas las páginas en la carpeta pages.

        El router lo que busca es el mismo nombre del la ruta (path) que tenemos en la carpeta /pages.

        Ejemplo:
        GET/
        Muestra el archivo en: /pages/index.js
        GET/platzi
        Muestra el archivo en: /pages/platzi.js

        En React, cada componente debe de retornar un solo objeto de HTML.

        Ejemplo de un componente:

        export default class extends React.Component { render() { return ( <div> <h1>Hola Mundo!</h1> <p>Bienvenido al curso de Nect.js</p> </div> ) } }

        Pueden ver el resumen completo del curso aquí.
        Pueden ver mi lista de resúmenes aquí.

          Ivan Robles

          Ivan Robles

          student•
          hace 7 años

          Excelente trabajo MineiToshio!! 😃

          Sergio Toshio Minei

          Sergio Toshio Minei

          student•
          hace 7 años

          Muchas gracias @elSharmaz

        Edwin García

        Edwin García

        student•
        hace 6 años

        Usando un componente funcional y Fragment en lugar de div para no enviar cosas de más al navegador se vería así:

        import { Fragment } from 'react' export default () => ( <Fragment> <h1>¡Hola mundo!</h1> <p>Bienvenidos al curso de Next.js</p> </Fragment> )

        Por lo que veo no es necesario importar React y ReactDOM, pero si es necesario hacerlo con Fragment.

          Alejandro Robleto

          Alejandro Robleto

          student•
          hace 6 años

          muy buena gracias por recordalo edwin

          Juan Otavalo

          Juan Otavalo

          student•
          hace 5 años

          A mi si me toco importar por que me mandaba error.

        Juan Rodrigo de la Cruz García García Briseño

        Juan Rodrigo de la Cruz García García Briseño

        student•
        hace 7 años

        qué diferencia hay entre npm add y npm install?

          Daniel Vaca

          Daniel Vaca

          student•
          hace 7 años

          npm add es un 'alias' de nom install.

          Daniel Vaca

          Daniel Vaca

          student•
          hace 7 años

          npm add es un alias de npm install

        Miguel Angel Morales Larriega

        Miguel Angel Morales Larriega

        student•
        hace 7 años

        //Con un sfc podría haber hecho menos código:

        const Index = () => ( <h1>¡Hola Platzi!</h1> ); export default Index;

          Juan González

          Juan González

          student•
          hace 6 años

          export default Index = () => <h1>¡Hola Platzi!</h1>

        José Antonio aparicio gallego

        José Antonio aparicio gallego

        student•
        hace 6 años

        Usas la clase de React.Component sin importarla, me puedes explicar como puede funcionar eso que tu haces por que normalmente no funciona así,

        tendrías que poner al principio, pero yo no veo por ningún sitio eso una respuesta seria apropiada. Gracias

        import React, { PureComponent } from "react"

          Cristhian García

          Cristhian García

          student•
          hace 6 años

          Creo que se debe a que Nextjs lo hace por nosotros

        Eduardo Peredo Rivero

        Eduardo Peredo Rivero

        student•
        hace 7 años

        Si como yo les gusta usar una carpeta src y mantener todo su código ahi pueden pasarle el root directory a next:

        "scripts": { "dev": "next ./src" }

        De esta manera pueden tener su carpeta pages dentro de src. Obviamente funciona con cualquier ruta no solo con src.

        Miguel Angel Morales Larriega

        Miguel Angel Morales Larriega

        student•
        hace 7 años

        Al ejecutar solo "npm-init" te trae cada valor del objeto del paquete y te hace una serie de preguntas para poder definir cada uno de ellos.

        En cambio al agregarle "-y" te trae por default los valores.

        Andrés Felipe Castellanos

        Andrés Felipe Castellanos

        student•
        hace 6 años

        Con el curso de React, es mejor usar <Fragment> en lugar de div, esto con el fin de que no se sature la pagina con muchos contenedores.

        <<Fragment> <h1>¡Hola Platzi!</h1> <p>Bienvenidos todos al curso de Next.js</p> </Fragment>>
          Rubén Darío Perez

          Rubén Darío Perez

          company_admin•
          hace 6 años

          Para abreviar también se puede escribir de la siguiente manera.

          <> <h1>Soy un Título</h1> <p>Soy la descripción</p> </>
        Sergio Toshio Minei

        Sergio Toshio Minei

        student•
        hace 7 años

        La mascota de Github del fondo del video está tomando PlatziCola! 😮

        Juan Reyes

        Juan Reyes

        student•
        hace 8 años

        30 a 40 Millones de años xD

        Daniela Gonzales

        Daniela Gonzales

        student•
        hace 7 años

        cual es la diferencia de crear un web con next y sin next?

          Diego Forero

          Diego Forero

          Team Platzi•
          hace 7 años

          Next ofrece features adicionales como server side render directamente, si no usas next tienes que hacer todo el server side render tu, eso es que tu pagina cargue de inmediato una versión estática mientras carga todos los datos y tu app de react, con esto el usuario siente que el sitio es más fluido y rápido.

          Miguel Angel Morales Larriega

          Miguel Angel Morales Larriega

          student•
          hace 7 años

          La diferencia es SSR Hacerlo sin next js implica que tu aplicación es un CSR (Client Side Render) osea una aplicacion que corre del lado del cliente. Ahora si tu aplicación es abierta en otro tipo de comoputador o celular que no tiene la misma capacidad que una actual, genera que tu aplicacion se demore en el tiempo de carga y sea solo óptimo en computadores actuales. Pero al utilizar SSR (Server Side Render) tu aplicación correrá del lado del servidor y no tendras problema en el tiempo de carga y obviamente se podra ver en cualquier tipo de dispositivo, pero ojo quizas me diras que el servidor será mas lento, pero no es así, ya que un sevidor es mucho más rapido y más optimo que una computadora.

          Espero haberte aclarado las dudas.

        Jose Daniel Atencio Manzanillo

        Jose Daniel Atencio Manzanillo

        student•
        hace 7 años

        tengo una pregunta y disculpen mi novatada... porque funciona index.js si no estoy importando react ??

          Carlos Sampol

          Carlos Sampol

          Team Platzi•
          hace 7 años

          Todo archivo .js se convertiste en una ruta, es procesado y renderizado. Next se encarga de hacer el import necesario :)

          Santiago Marcano

          Santiago Marcano

          student•
          hace 7 años

          Es importante resaltar que el archivo debe estar ubicado en la carpeta pages para que Next lo lea como una ruta

        Alejandro Zapata Molina

        Alejandro Zapata Molina

        student•
        hace 6 años

        Interesante!!! Es hermoso que no se tengan que definir las rutas manualmente <3

        Carlos Rivas

        Carlos Rivas

        student•
        hace 7 años

        ¿No es mejor usar un “fragment” en vez de un “div”?

          Leandro Videla

          Leandro Videla

          student•
          hace 7 años

          Claro! Sería algo así:

          class Hola extends React.Component { render() { return ( <React.Fragment> <h1>Hola Platzi</h1> <p>Bienvenidos al curso de next js</p> </React.Fragment> ); } } export default Hola;
          Martin Lazzeri

          Martin Lazzeri

          student•
          hace 7 años

          pensaba lo mismo

        Carlos Sánchez

        Carlos Sánchez

        student•
        hace 7 años

        si usamos nextjs, no necesitamos webpack?

          Seba Cardoso

          Seba Cardoso

          student•
          hace 6 años

          No necesitamos instalar webpack porque next lo usa por abajo. En el archivo next.config.js podemos configurar las opciones de webpack

        Juan David Martinez Mona

        Juan David Martinez Mona

        student•
        hace 5 años

        Hola a todos, tengo el siguiente error:

        /home/david/Desktop/workBench/JavaScript/Next/podcast/node_modules/p-limit/index.js:29 } catch {} ^

        SyntaxError: Unexpected token { at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:616:28) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Module.require (module.js:596:17) at require (internal/module.js:11:18) at Object.<anonymous> (/home/david/Desktop/workBench/JavaScript/Next/podcast/node_modules/next/dist/build/webpack/plugins/terser-webpack-plugin/src/index.js:1:336) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! podcast@1.0.0 dev: next npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the podcast@1.0.0 dev script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

        presumo que tiene que ver con la version, pero no encuentro el problema, ¿alguien mas ha tenido este inconveniente?

        Johan Stivens Suarez Galindo

        Johan Stivens Suarez Galindo

        student•
        hace 6 años

        Estoy usando la versión de NEXTJS 9.4.0, pero el profesor usa la 6.0.3, creen que haya algún problema o podré trabajar sin problemas?

          Erik Elyager

          Erik Elyager

          student•
          hace 6 años

          Estás varias versiones adelante, muy probablemente muchas cosas han cambiado, has la prueba. Te recomiendo el curso, yo lo tomé hace ya algún tiempo y el proyecto es buenísimo sería genial que pudieras actualizar el proyecto a la última versión.

          Pablo Orozco Monte

          Pablo Orozco Monte

          student•
          hace 6 años

          Los desarrolladores de Next Js continúan creando nuevos features en cada versión pero siguen soportando las anteriores. Algo que cambia puede ser que la carpeta /static en Next Js 9.4 es /public

        Kevin Humberto León Santamaria

        Kevin Humberto León Santamaria

        student•
        hace 6 años

        No me corre el entorno de desarrollo, ya intente borrando la carpeta node_modules y el archivo package-lock.json, luego borre el cache y ejecute npm install y no solucione nada, espero su pronta ayuda, estuve buscando la solucion en varias paginas y nada.

        ➜ podcasts node:(v13.0.1) npm run dev > podcasts@1.0.0 dev /mnt/k/{ Programación }/next_js/podcasts > index.js sh: 1: index.js: not found npm ERR! code ELIFECYCLE npm ERR! syscall spawn npm ERR! file sh npm ERR! errno ENOENT npm ERR! podcasts@1.0.0 dev: `index.js` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the podcasts@1.0.0 dev script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/kehu/.npm/_logs/2019-12-10T01_44_54_679Z-debug.log
          Gabriel De Andrade

          Gabriel De Andrade

          student•
          hace 6 años

          Hola! Parece que en la pages del proyecto no está declarado un index.js, asegurate de que si exista un archivo index.js dentro de pages y asegurate de estar en la carpeta correcta :D

          Kevin Humberto León Santamaria

          Kevin Humberto León Santamaria

          student•
          hace 6 años

          Gracias por responder, compañero. Esa posibilidad ya la descarte, esta todo correcto, por lo que no entiendo qué pasa.