- Lazy loading de rutas:
() => import('./views/Heavy.vue') v-oncepara contenido estático que nunca cambiav-memopara evitar re-renders en sublistasshallowRefpara datos grandes que no se editancomputeden lugar de métodos (caché)- Virtual scrolling para listas largas (vue-virtual-scroller)
- Code splitting con
defineAsyncComponent - Debounce en inputs de búsqueda y filtros
v-showen lugar dev-ifpara elementos que se ocultan y muestran con frecuencia- Evitar watchers innecesarios, preferir computed cuando sea posible
Diagnóstico:
- Vue DevTools → Performance timeline
- Browser DevTools → pestaña Performance → flame chart
vite-bundle-visualizerpara analizar el tamaño del bundle- Pestaña Network para detectar llamadas a la API redundantes