Una de las mejores cosas que trae next por defecto es este tipo de configuración para producción, tanto el manejo de assets como la generación de bundles y por sobre todo su sistema de SSR y Prefetching de los componentes de cada página.
Lo básico
Construir una web app con React no es fácil
Nuestro proyecto y lo que necesitaremos
Instalando NextJS
Routing
Rutas básicas
Rutas dinámicas
#UnderTheHood setup y páginas: optimizaciones ocultas
#UnderTheHood páginas: pre rendering de páginas
Enlazando páginas
#UnderTheHood enlazando páginas: prefetching automático
API y Debugging
¿Cómo crear API con NextJS?
Creando y consumiendo nuestra propia API
Extendiendo NextJS
Extendiendo el Document
Extendiendo el App
Path alias
Explora las soluciones de CSS en NextJS y su flexibilidad
Finalizando las páginas
Deployment en Vercel
Utilizando Vercel para hacer Deploy
Data Fetching y Pre-rendering
Introducción a los pre-render modes
#UnderTheHood Server Side Rendering: getServerSideProps
#UnderTheHood Static Generation: getStaticProps
#UnderTheHood Static Dynamic Static Generation: getStaticPaths
Deployment
Otras formas de hacer deploy de una app NextJS
Midiendo Performance
Mide Performance en NextJS
El futuro de NextJS
¿Qué será de NextJS en los próximos años?
Conclusiones
Continúa con el Curso de Next.js: Sitios Estáticos y Jamstack
Bonus Next.js 10
Next.js Image
Link y Proxy
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Adquiere por un año todos los cursos, escuelas y certificados por un precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 21
Preguntas 5
Una de las mejores cosas que trae next por defecto es este tipo de configuración para producción, tanto el manejo de assets como la generación de bundles y por sobre todo su sistema de SSR y Prefetching de los componentes de cada página.
hahaha cuando revise la persona del curso de optimizacion del curso
Ah pero mira, Next.js es el APACHE de React. ❤️
/
Next.js tiene como objetivo ayudarnos a crear aplicaciones React evitando que nos preocupemos por cosas que no debemos hacer. Y también optimizando el código que creamos cuando se compila. Así, una de las maneras en que Next.js hace posible la optimización del código es utilizando Code Splitting en lugar de hacer JS Bundles. Vamos a explicar cada uno de ellos a fondo:
/
La forma en que podemos observar la forma en que Next.js realiza la división del código utilizando nuestro código es:
/
El hecho de que Next.js haga la división del código, tiene todo el sentido. Debido a que Next.js es para el renderizado del lado del servidor (SSR) y la división del código es bastante útil para el tiempo de carga y el buen SEO.
chunk.- pedazo de código
CSR.- Client Side Rendering
SSR.- Server Side Rendering
<h4>Apuntes</h4>"scripts": {
"dev": "next", // desarrollo
"build": "next build", // build prod
"start": "next start" // server prod
},
Al momento de compilar separa el código con la técnica code splitting. Ademas de aplicar hashes a los assets. Ademas que para cada pagina generara un chunk especifico y mantendrá el código que se usara durante toda la aplicación
Podemos ver que las paginas generadas son SSR dándonos más SEO que con CSR
RESUMEN: Next.js aplica al bundle final diferentes optimizaciones como ser vendor files que hacen que no nos preocupemos de la configuración del proyecto. Ademas que nos da un mejor SEO por el server side rendering
npm run-script build
Jajajajaja, del curso de optimizacion web: “que lo da otra persona, que me encanta muchisimo”.
Que campeón Jonathan!!! 👏 😂
Me hiciste reir un rato!
Esas referencias al genial curso de optimización web.
I_see_you_are_a_man_of_culture_as_well.jpg
Esto esta muy bonito. Ya tengo experincia con Next por mi trabajo pero en estos cursos uno siempre aprende cositas interesentantes que le ayudan a entender mejor las cosas por debajo. Excelente profe 👍✨
No se si esto le sirva a alguien pero a mi me a paso.
En la carpeta pages, si haces exportaciones nombradas tipo:
export { ComponentName };
generara error al momento de correr yarn build.
usa exportaciones por defecto, para evitar errores, como:
export default ComponentName;
"scripts": {
"dev": "next",
"build": "next build", // build para producción
"start": "next start" // servidor en node para producción
},
Si ejecutamos npm run build
con lo que tenemos hasta ahora:
Page Size First Load JS
┌ ○ / 323 B 67.3 kB
├ ○ /404 194 B 67.2 kB
├ ○ /about 288 B 67.3 kB
└ ○ /product/[id] 340 B 67.3 kB
+ First Load JS shared by all 67 kB
├ chunks/framework.b97a0e.js 42 kB
├ chunks/main.8d1561.js 23.3 kB
├ chunks/pages/_app.1a580d.js 979 B
└ chunks/webpack.49d04e.js 690 B
λ (Server) server-side renders at runtime (uses getInitialProps or getServerSideProps)
○ (Static) automatically rendered as static HTML (uses no initial props)
● (SSG) automatically generated as static HTML + JSON (uses getStaticProps)
(ISR) incremental static regeneration (uses revalidate in getStaticProps)
Next prepara nuestro sitio para producción y le asigna a cada página su ‘chunk’ (su parte necesaria para que funcione correctamente).
Esto está bastante optimizado con code splitting.
Next.js divide su JavaScript en partes separadas para cada ruta. Cuando los usuarios cargan su aplicación, Next.js solo envía el código necesario para la ruta inicial. Cuando los usuarios navegan por la aplicación, obtienen los fragmentos asociados con las otras rutas. La división de código basada en rutas minimiza la cantidad de scripts que deben analizarse y compilarse a la vez, lo que da como resultado tiempos de carga de página más rápidos.
fuente: https://web.dev/i18n/es/code-splitting-with-dynamic-imports-in-nextjs/
es una linea mas de codigo pero es mas descriptivo para los que no tiene tanta experiencia
const router = useRouter();
const {
query: { productId },
} = router;```
Chunk: Cada seccion o parte minima que le carresponde a cada pagina en especifico
comparto una extensión que ayuda mucho en el desarrollo con React y tambien indica cuando estamos en modo desarrollo o producción React Developer Tools
alguno tiene el prolema de queno funciona el hot reload??
Para los que usan WLS2, cuando intente ejecutar el comando “start” me salio el siguiente error:
Error: listen EADDRINUSE: address already in use 0.0.0.0:3000
at Server.setupListenHandle [as _listen2] (node:net:1485:16)
at listenInCluster (node:net:1533:12)
at doListen (node:net:1682:7)
at process.processTicksAndRejections (node:internal/process/task_queues:83:21) {
code: 'EADDRINUSE',
errno: -98,
syscall: 'listen',
address: '0.0.0.0',
port: 3000
}
Buscando en google un poco encotre la solucion en esta web:
Espero les sea de utilidad.
Viene con lazy loading por defecto omg, aprende angular
Me encantan tus clases y claro que me encanta la persona que dicta el curso de optimización ✨
yo lo corri con
npm run build
Ahorra muchas configuraciones y no es como un create-react-app, excelente opción
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.