Vue 3’s reactivity is efficient for most dashboards, but performance work still starts with measurement—Vue DevTools, browser Performance tab, Lighthouse—not premature micro-optimizations.
Common real issues
- Huge lists rendered without virtualization
- Expensive
computedchains recomputing on unrelated state changes - Watchers refetching on every keystroke without debounce
- Deep provide/inject objects recreated every render
Fix order
- Reduce work (paginate, lazy-load routes)
- Split components so only subtrees re-render
- Memoize with
computedand stable references - Virtualize long lists (
vue-virtual-scroller, etc.)
Self-check
- When is
v-memoworth considering? - Why profile before adding debounce everywhere?