{{ message }}
--- 3. Use Descriptive Variable and Function Names Choose meaningful names for variables, functions, and computed properties to make your code self-documenting. Example: // Bad const x = ref(0) // Good const userCount = ref(0) --- 4. Extract Reusable Logic into Composables Move reusable logic into composables (custom hooks) to keep your components clean and promote code reuse. Example Composable: // composables/useCounter.js import { ref } from 'vue' export function useCounter(initialValue = 0) { const count = ref(initialValue) function increment() { count.value++ } function reset() { count.value = initialValue } return { count, increment, reset, } } Usage in a Component:Count: {{ count }}
--- 5. Use ref for Primitive Values and reactive for Objects - Use ref for primitive values (e.g., numbers, strings, booleans). - Use reactive for objects or arrays. Example: const count = ref(0) // Primitive value const user = reactive({ name: 'John', age: 30 }) // Object --- 6. Use Computed Properties for Derived State Use computed to create reactive properties that depend on other state. This ensures the derived state is always up-to-date. Example: const firstName = ref('John') const lastName = ref('Doe') const fullName = computed(() => `${firstName.value} ${lastName.value}`) --- 7. Use Watchers Sparingly Watchers (watch and watchEffect) are powerful but can make your code harder to understand if overused. Prefer computed properties or event-driven updates where possible. Example: watch(count, (newValue, oldValue) => { console.log(`Count changed from ${oldValue} to ${newValue}`) }) --- 8. Group Related Logic Together Keep related reactive state, computed properties, and functions together to make your code easier to follow. Example: // User-related logic const user = reactive({ name: 'John', age: 30 }) const isAdult = computed(() => user.age >= 18) function updateUser(newName) { user.name = newName } ----------- 9. Use Lifecycle Hooks for Side Effects Use lifecycle hooks (onMounted, onUnmounted, etc.) for side effects like fetching data or setting up event listeners. Example: onMounted(() => { console.log('Component mounted') fetchData() }) onUnmounted(() => { console.log('Component unmounted') cleanup() }) ---------------- 10. Use TypeScript for Better Type Safety If your project uses TypeScript, leverage it to add type safety to your components. Example: -------------- 11. Keep Templates Clean Avoid putting too much logic in your template. Instead, move complex logic into the script or composables. Example:{{ fullName }}