Performance: Sharing composables across components
MEDIUM IMPACT
This affects how efficiently state and logic are reused across Vue components, impacting rendering speed and memory usage.
const sharedCount = ref(0); function useCounter() { function increment() { sharedCount.value++; } return { count: sharedCount, increment }; } // In each component const { count, increment } = useCounter();
function useCounter() { const count = ref(0); function increment() { count.value++; } return { count, increment }; } // In each component const { count, increment } = useCounter();
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Separate reactive state per component | Multiple reactive refs per component | Multiple re-renders on updates | Higher paint cost due to many updates | [X] Bad |
| Shared reactive state via composable | Single reactive ref shared | Single re-render per update | Lower paint cost with fewer updates | [OK] Good |