Prefetching manual en Next.js con router.prefetch
Clase 10 de 19 • Curso de Next.js: Optimización y Deploy a Producción
Resumen
¿Cómo funciona el prefetching en Next.js?
La optimización de rutas y el cargado anticipado de recursos son componentes vitales en el desarrollo moderno de aplicaciones web. Next.js ofrece una funcionalidad poderosa conocida como prefetching, que permite anticiparse a las necesidades de navegación del usuario, mejorando así su experiencia. En este apartado, profundizaremos en el funcionamiento del prefetching en Next.js y cómo podemos implementarlo de manera manual.
¿Qué es el prefetch del componente Link de Next.js?
En Next.js, el componente Link
viene con una característica interesante: permite el prefetching de manera automática. Esto significa que mientras el usuario está interactuando con la página actual, Next.js anticipa cuál podría ser la siguiente página que el usuario solicite y la carga en segundo plano. Esto reduce el tiempo de espera cuando el usuario decide navegar a esa página.
Si deseas conocer más a fondo cómo funciona este proceso en producción, el curso básico de Next.js ofrece una excelente exploración "Under the Hood". Esta funcionalidad es clave para acelerar la navegación en una aplicación, pero Next.js también permite realizar prefetching de forma manual, lo cual exploraremos a continuación.
¿Cómo realizar un prefetching manual con router.prefetch?
Next.js ofrece un método dentro de su router llamado router.prefetch
. Este método es útil cuando queremos tener más control sobre qué recursos se precargarán y cuándo. La función es sencilla de utilizar y toma dos parámetros:
- La URL de la página que deseamos precargar.
- El parámetro
as
que se usa para caminos decorados, aunque en la mayoría de los casos no es necesario.
¿Cuándo debemos usar router.prefetch?
- Navegación frecuente: Si existe una acción que los usuarios realizan constantemente y que redirige a otra página, el uso de
router.prefetch
puede mejorar la experiencia del usuario al tener la página precargada. - Eventos específicos: En aplicaciones que dependen de acciones del usuario, como hacer clic en un botón que luego redirige a otra página tras una acción del servidor o base de datos,
router.prefetch
puede precargar la próxima vista para suavizar la transición.
Limitaciones del prefetching
- Solo producción: Es importante recordar que esta función únicamente está activa en el entorno de producción.
- Solo páginas de Next.js: El prefetching se limita a las páginas dentro de la aplicación de Next.js. No se puede usar para recursos externos, como JavaScript, CSS, o páginas fuera de Next.js.
- Recursos de la página: Next.js precompila los recursos necesarios para las páginas durante la compilación (por ejemplo,
yarn build
). Estos recursos son los únicos querouter.prefetch
puede anticipar.
Con estas herramientas y conocimientos, se pueden optimizar las aplicaciones en Next.js de manera efectiva. No solo se mejora la navegación, sino que también se preparan los recursos que un usuario podría requerir, asegurando una experiencia fluida y rápida. Sigue explorando y experimentando para adaptar estas prácticas a tus necesidades específicas de desarrollo.