Performance: Defining state in stores
MEDIUM IMPACT
This affects page load speed and interaction responsiveness by controlling how state changes trigger component updates and re-renders.
import { ref } from 'vue'; export function useStore() { const user = ref(null); const items = ref([]); function updateUser(newUser) { user.value = newUser; } function addItem(item) { items.value.push(item); } return { user, items, updateUser, addItem }; }
import { reactive } from 'vue'; export const store = reactive({ user: null, items: [], updateUser(newUser) { this.user = newUser; }, addItem(item) { this.items.push(item); } });
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Large reactive store object | High (many components re-render) | High (many reflows triggered) | High (many paints) | [X] Bad |
| Small reactive refs per state piece | Low (only affected components re-render) | Low (minimal reflows) | Low (minimal paints) | [OK] Good |