Performance: Single File Components concept
MEDIUM IMPACT
This affects initial page load speed and rendering performance by how Vue bundles and processes component code.
<template> <ChildComponent /> </template> <script> import { defineAsyncComponent } from 'vue'; export default { components: { ChildComponent: defineAsyncComponent(() => import('./ChildComponent.vue')) } }; </script>
<template><div>...</div></template> <script>export default { /* large logic */ }</script> <style>/* large styles */</style>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| One large SFC | Moderate (single root) | 1 reflow | High paint cost due to delayed script | [X] Bad |
| Multiple small SFCs with lazy loading | Multiple small DOM trees | Few reflows | Lower paint cost due to faster script load | [OK] Good |