Skip to main content

5 Performance Tips That Made Our Vue 3 App 3x Faster

B
Bohdan Hordiychuk
June 15, 2026 5 min read 2
When Your Bundle Gets Too Big Our SaaS platform grew to over 200 Vue components and the initial load time started creeping past 4 seconds. Here are the five changes that brought it down to under 1.5 seconds. 1. Aggressive Code Splitting with Manual Chunks Instead of relying on Vite's default chunking, we configured manualChunks to split our app by domain — calendar, booking, clinic, restaurant, etc. Each feature loads only when the user navigates to it. 2. Replace v-if with v-show for Tabs For tabbed interfaces where users switch back and forth, v-show keeps the DOM alive and avoids re-rendering. This alone cut our tab-switch time by 80%. 3. Virtualized Lists for Large Data Sets Customer lists, booking histories, invoice tables — any list with 100+ items now uses virtual scrolling. We render only what is visible in the viewport. 4. Debounced Search with AbortController Every search input debounces by 300ms and cancels the previous request using AbortController. No more stale results racing with fresh ones. 5. Smart Preloading on Hover When a user hovers over a navigation link, we start preloading that route's chunk. By the time they click, the component is already cached. Result: Lighthouse performance score went from 62 to 94. Time to Interactive dropped from 4.2s to 1.4s.
What do you think?
Share
B
Written by

Bohdan Hordiychuk

View all posts