Optimización de Imágenes - Victoria Rápida para Mejorar el Rendimiento en Aplicaciones Vue & Nuxt

Rate this content
Bookmark

Mejorar el rendimiento de las aplicaciones Vue o Nuxt no es una tarea fácil. Sin embargo, hay algunas victorias rápidas que puedes implementar fácilmente y que mejorarán drásticamente el rendimiento de tu sitio web. Una de estas victorias rápidas es la Optimización de Imágenes. En esta charla, te enseñaré cómo optimizar imágenes al vuelo con servicios de Gestión de Activos Digitales como Cloudinary o Sistemas de Gestión de Contenidos, utilizar el concepto de Carga Perezosa, usar formatos comprimidos de imágenes como WEBP, ¡y mucho más!

FAQ

La optimización de imágenes implica ajustar el tamaño, el formato y la calidad de las imágenes para reducir su tamaño de archivo sin perder calidad visual significativa. Es crucial para mejorar el rendimiento del sitio web porque las imágenes optimizadas se cargan más rápido, mejorando la experiencia del usuario y la velocidad general del sitio.

Durante la presentación se mencionaron formatos de imagen como WebP y Avif, que son más ligeros en tamaño comparados con formatos más tradicionales como JPEG y PNG, aunque no son compatibles con todos los navegadores, como Internet Explorer.

Se puede utilizar IPX, una herramienta desarrollada por el equipo de Nuxt bajo la organización NGS, que es fácil de usar y puede funcionar como middleware de ExpressJS o como cliente. Otra opción es Cloudinary, una herramienta de gestión de activos digitales que permite optimizar imágenes bajo demanda con varias configuraciones.

Cloudinary permite transformar imágenes ajustando formato, tamaño y aplicando diversas optimizaciones. Automáticamente selecciona el formato más eficiente y permite realizar transformaciones como cambiar el formato, reducir tamaño y añadir superposiciones, mejorando así la eficiencia y la apariencia de las imágenes en un sitio web.

Sí, Cloudinary ofrece un nivel gratuito que es bastante generoso para aplicaciones pequeñas como portafolios, aunque tiene algunas limitaciones en comparación con los niveles de pago, como la eliminación de fondos y otras características avanzadas.

La carga diferida de imágenes es una técnica que carga imágenes solo cuando son necesarias, es decir, cuando el usuario se desplaza y están a punto de entrar en el viewport. Esto reduce el tiempo de carga inicial de la página y mejora la eficiencia al no cargar todas las imágenes de una vez.

En Vue o Nuxt, se puede utilizar el módulo Nuxt Image, que soporta varios proveedores de optimización de imágenes, incluyendo Cloudinary. También se está desarrollando un módulo específico para Cloudinary que traerá funcionalidades adicionales para Nuxt 3, facilitando la integración y optimización de imágenes directamente en estas plataformas.

Jakub Andrzejewski
Jakub Andrzejewski
31 min
12 May, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La optimización de imágenes es crucial para el rendimiento del sitio web y la experiencia del usuario. Servicios como IPX y Cloudinary pueden ayudar a optimizar las imágenes al vuelo. Cloudinary ofrece funcionalidades adicionales y transformaciones para la gestión de imágenes. La carga perezosa y el patrón perezoso pueden mejorar el rendimiento del sitio web al diferir la carga de imágenes. Las imágenes optimizadas ofrecen una mejor experiencia al usuario. Las soluciones alternativas pueden mitigar el impacto de las fallas del servicio.

1. Introducción a la Optimización de Imágenes

Short description:

Para mejorar el rendimiento del sitio web, a menudo nos enfocamos en el back-end. Sin embargo, hay varias optimizaciones de front-end que podemos hacer. La optimización de imágenes es una victoria rápida para mejorar el rendimiento y la experiencia del usuario. Comencemos con una encuesta para ver cuántos de ustedes están utilizando y optimizando imágenes en sus sitios web. Optimizar las imágenes es crucial para un sitio web de alto rendimiento y mejora la experiencia del usuario. Hoy, nos centraremos en la optimización de imágenes y su impacto en el rendimiento del sitio web.

¿Me escuchan bien? ¿Sí? Bueno. Vale. Entonces, podrías estar pensando que para mejorar el performance del sitio web, necesitamos enfocarnos en las cosas del back-end. ¿Verdad? Entonces, necesitamos optimizar o hacer las consultas SQL más eficientes. Necesitamos optar por implementaciones de caché y cosas así. Pero en realidad, hay varias cosas que podemos hacer en el front-end para hacerlo más eficiente. Y esto me inspiró a tomar el tema de la optimization de imágenes para la presentación de hoy ya que es, en mi opinión, una de las victorias rápidas para mejorar el performance en tu sitio web.

Entonces, como ya me presenté. Mi nombre es Jakub y trabajo en Vue Storefront. Y también soy un Experto Desarrollador de Google en performance web. Esta es también una de las razones por las que seleccioné el tema. Y también soy embajador en esas organizaciones, así que si estás interesado en hablar sobre cualquiera de ellas, solo búscame después de la charla y podemos compartir el conocimiento. Y sí. Hablar de ello. Y como también mencionó Dom, nos conocimos hace casi dos años en la última edición de Vue.js Live, así que estoy muy contento de estar aquí una vez más. Y sí, compartir mi conocimiento con todos ustedes.

Entonces comenzaré la presentación con una pequeña encuesta. Por favor, levanta la mano si estás utilizando imágenes en tu sitio web. Eso es básicamente muy sencillo, ¿verdad? Sí, estamos utilizando las imágenes en nuestros sitios web. Y ahora por favor levanta la mano si estás optimizando las imágenes. Vale. Entonces, bastantes de ustedes, pero no tantos. Así que claramente podemos ver que todos estamos utilizando las imágenes, pero no las estamos optimizando. Mientras que optimizar las imágenes es, en mi opinión, la parte crucial de un sitio web de alto rendimiento. Y no se trata solo de los resultados de Lighthouse o cualquier otra herramienta de auditoría de performance web. También es bueno para la user experience porque los usuarios quieren obtener los data lo más pronto posible. Como las imágenes, si estás buscando un sitio web de e-commerce, quieres tener la imagen del producto lo más pronto posible porque quieres comprar el producto. Entonces, hablemos primero sobre los formatos de imagen. Hay muchas diferencias técnicas entre un formato de imagen y otro. Y en mi charla de hoy, quería centrarme en la optimization.

2. Importancia del Tamaño y Formato de la Imagen

Short description:

El tamaño y el tiempo de carga de las imágenes son factores importantes en el rendimiento del sitio web. Formatos como WebP y Avif son más ligeros que JPEG y PNG, pero no son compatibles con Internet Explorer. Las imágenes de tamaño adecuado evitan el desplazamiento del diseño y mejoran el tiempo de carga. Los Core Web Vitals, como la pintura de contenido más grande y el desplazamiento acumulativo del diseño, dependen de imágenes de tamaño adecuado. Los servicios de optimización de imágenes pueden ayudar a optimizar las imágenes al vuelo.

Básicamente el tamaño y el tiempo de carga de la imagen. Así que quiero centrarme solo en uno. Y sí, prepárate, habrá algunos memes más también.

Para los usuarios, la diferencia habitual entre una imagen que está, digamos, en un formato y la otra imagen, que está en un formato diferente, suele ser la misma. No puedes ver la diferencia. Simplemente se ven igual. La única diferencia es el tamaño. Y esto es lo que mostraré durante la breve demostración más adelante. Pero en general, formatos como WebP o Avif, espero haberlo pronunciado correctamente, son más ligeros que JPEG y PNG, pero no son compatibles con Internet Explorer. Y digo esto porque uno de mis amigos, hasta hoy, está soportando una aplicación que todavía necesita funcionar en Internet Explorer. Así que no tiene un gran trabajo, diría yo.

Sí, así que hablamos de los formatos de imagen. También hay casos sobre el tamaño, imágenes de tamaño adecuado. Y he visto demasiados sitios web de producción donde básicamente estaban obteniendo la imagen, por ejemplo, para un pequeño icono, y la imagen estaba en una resolución full HD, y luego era como comprimida en el icono que estaba, por ejemplo, en el pie de página. Así que esto puede parecer un problema realmente, realmente extraño, pero sucede demasiado a menudo, diría yo, para los sitios web modernos.

Entonces, ¿por qué deberíamos tener las imágenes de un tamaño adecuado? Básicamente por el tiempo de carga. Si estamos obteniendo las imágenes en el formato correcto, el tiempo de carga será más corto y también habrá lo que es la segunda cosa más importante, no veremos el desplazamiento del diseño. Porque tendrás... si has visto algunas charlas o artículos sobre el rendimiento web, probablemente ya sabes sobre los Core Web Vitals. Esta es como la métrica o conjunto de métricas que podemos usar para verificar cómo está funcionando nuestro sitio web. Así que hay métricas como la primera, la pintura de contenido más grande y el desplazamiento acumulativo del diseño. Y tener las imágenes de tamaño adecuado es importante para ambos. Pero podemos optimizar esas imágenes básicamente reemplazando... o convirtiendo una de las formatos de imágenes en otro. Podemos simplemente tener la imagen en la resolución correcta desde el principio. Pero en la mayoría de los casos, queremos poder optimizarlas al vuelo. Utilizando cierto software. Para eso, podemos usar servicios de optimización de imágenes. No estoy seguro si existe una palabra como esta o una palabra clave. Simplemente la inventé.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Una Guía del Comportamiento de Renderizado de React
React Advanced Conference 2022React Advanced Conference 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
React es una biblioteca para "renderizar" UI a partir de componentes, pero muchos usuarios se encuentran confundidos acerca de cómo funciona realmente el renderizado de React. ¿Qué significan términos como "renderizado", "reconciliación", "Fibers", y "committing"? ¿Cuándo ocurren los renderizados? ¿Cómo afecta el Contexto al renderizado, y cómo las bibliotecas como Redux causan actualizaciones? En esta charla, aclararemos la confusión y proporcionaremos una base sólida para entender cuándo, por qué, y cómo React renderiza. Veremos: - Qué es realmente el "renderizado" - Cómo React encola los renderizados y el comportamiento de renderizado estándar - Cómo se utilizan las claves y los tipos de componentes en el renderizado - Técnicas para optimizar el rendimiento del renderizado - Cómo el uso del contexto afecta al comportamiento del renderizado - Cómo las bibliotecas externas se integran en el renderizado de React
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
¿Demasiado JavaScript te está agobiando? Los nuevos marcos que prometen no usar JavaScript parecen interesantes, pero tienes una aplicación React existente que mantener. ¿Qué tal si Qwik React es tu respuesta para un inicio de aplicaciones más rápido y una mejor experiencia de usuario? Qwik React te permite convertir fácilmente tu aplicación React en una colección de islas, que pueden ser renderizadas en el servidor y rehidratadas con retraso, e incluso en algunos casos, se puede omitir la rehidratación por completo. Y todo esto de manera incremental sin una reescritura.
Bienvenido a Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Bienvenido a Nuxt 3
Top Content
Explica sobre la refactorización del código base de NuxtJS y los desafíos que enfrenta para implementar Vue 3, Vite y otros paquetes.
Un Año en Vue 3
Vue.js London Live 2021Vue.js London Live 2021
20 min
Un Año en Vue 3
Top Content
Vue 3 puede sonar aún nuevo para muchos usuarios, pero en realidad ya ha sido lanzado hace más de un año. ¿Cómo evolucionó Vue 3 durante este período? ¿Por qué tardó tanto en ponerse al día el ecosistema? ¿Qué aprendimos de este proceso? ¿Qué viene después? ¡Discutiremos estas preguntas en esta charla!
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
¡React 18! ¡Funciones concurrentes! Tal vez ya hayas probado las nuevas APIs como useTransition, o tal vez solo hayas oído hablar de ellas. Pero, ¿sabes cómo React 18 logra las mejoras de rendimiento que trae consigo? En esta charla, echemos un vistazo bajo el capó de las características de rendimiento de React 18: - Cómo React 18 reduce el tiempo que tu página permanece congelada (también conocido como TBT) - Qué sucede exactamente en el hilo principal cuando ejecutas useTransition() - Cuál es la trampa con las mejoras (¡no hay torta gratis!), y por qué Vue.js y Preact se negaron rotundamente a lanzar algo similar
Vue: Actualizaciones de Características
Vue.js London 2023Vue.js London 2023
44 min
Vue: Actualizaciones de Características
Top Content
El creador de Vue js da una actualización sobre las nuevas características de la tecnología.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
Featured WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Vue.js London Live 2021Vue.js London Live 2021
117 min
Usando Nitro - Construyendo una Aplicación con el Último Motor de Renderizado de Nuxt
Top Content
Workshop
Daniel Roe
Daniel Roe
Construiremos un proyecto Nuxt juntos desde cero usando Nitro, el nuevo motor de renderizado de Nuxt, y Nuxt Bridge. Exploraremos algunas de las formas en que puedes usar y desplegar Nitro, mientras construimos una aplicación juntos con algunas de las restricciones del mundo real que enfrentarías al desplegar una aplicación para tu empresa. En el camino, dispara tus preguntas hacia mí y haré lo mejor para responderlas.
Depuración del Rendimiento de React
React Advanced Conference 2023React Advanced Conference 2023
148 min
Depuración del Rendimiento de React
Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Veía una interacción lenta, probaba una optimización aleatoria, veía que no ayudaba, y seguía probando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Hacía una grabación en Chrome DevTools o React Profiler, la examinaba, intentaba hacer clic en cosas al azar, y luego la cerraba frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos cómo analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, cubriremos el rendimiento de interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)