This document tracks the Vue.js concepts and features I have learned and implemented in this workspace.
| # | Concept | Description | Use Case | Example | 
|---|---|---|---|---|
| 1 | ref() | Reactive variable that holds value and enables reactivity in Vue 3 | Creating reactive primitive values | const count = ref(0) | 
| 2 | reactivity | System that makes data reactive between script and template | Automatic UI updates when data changes | Data binding, computed properties | 
| 3 | v-bind | Dynamically bind data to HTML attributes | Dynamic attribute binding | :class="active",:style="styles" | 
| 4 | v-if | Conditional rendering based on boolean expression | Show/hide elements conditionally | v-if="isVisible",v-else-if,v-else | 
| 5 | v-for | Render lists by iterating over arrays/objects | Display dynamic lists | v-for="item in items" :key="item.id" | 
| 6 | watch() | Watch reactive data changes and execute functions | Side effects on data changes | API calls, validation, logging | 
| 7 | v-on (@) | Listen to DOM events and execute methods | Event handling | @click="handleClick",@submit="onSubmit" | 
| 8 | Class/Style Binding | Dynamic binding of classes and styles | Conditional styling | :class="{ active: isActive }" | 
| 9 | computed() | Create derived state from reactive data (cached) | Calculated values | Filtered lists, formatted data | 
| 10 | toRefs() | Convert reactive object to plain object with refs | Destructuring while maintaining reactivity | const { name, age } = toRefs(user) | 
| 11 | emit() | Send custom events from child to parent | Component communication | emit('update', value) | 
| 12 | defineProps() | Define props a component accepts from parent | Component input validation | defineProps(['id', 'name']) | 
| 13 | reactive() | Create reactive object with deep reactivity | Complex object state | const state = reactive({ user: {} }) | 
| 14 | v-model | Two-way data binding for form inputs | Form handling | v-model="inputValue" | 
| 15 | onMounted() | Lifecycle hook called after DOM mounting | Initialization tasks | API calls, DOM manipulation | 
| 16 | useRoute() | Access current route object information | Route data access | route.params.id,route.query.search | 
| 17 | useRouter() | Access router instance for navigation | Programmatic navigation | router.push(),router.replace() | 
| Category | Directives | Purpose | 
|---|---|---|
| Data Binding | v-bind,v-model | Connect data to template | 
| Conditional | v-if,v-else-if,v-else,v-show | Control element visibility | 
| List Rendering | v-for | Render arrays/objects | 
| Event Handling | v-on (@) | Handle user interactions | 
| Text Content | v-text,v-html | Display text/HTML content | 
| Function | Type | Purpose | Returns | 
|---|---|---|---|
| ref() | Reactivity | Create reactive reference | Ref<T> | 
| reactive() | Reactivity | Create reactive object | Reactive<T> | 
| computed() | Reactivity | Create computed property | ComputedRef<T> | 
| watch() | Reactivity | Watch data changes | WatchStopHandle | 
| onMounted() | Lifecycle | Mount lifecycle hook | void | 
| defineProps() | Component | Define component props | Props | 
| defineEmits() | Component | Define component events | Emit | 
| useRoute() | Router | Access current route | RouteLocationNormalized | 
| useRouter() | Router | Access router instance | Router | 
- ✅ Vue 3 project setup with Vite
- ✅ Single File Components (SFC) structure
- ✅ Template syntax and directives
- ✅ Component composition and organization
- ✅ Text Interpolation - TextInterpolation.vue- Mustache syntax {{ }}
- Displaying dynamic data in templates
- Basic event handling with @click
 
- Mustache syntax 
- ✅ V-Bind Directive - VBind.vue- Binding data to HTML attributes (:src,:alt,:class)
- Conditional classes based on data
- Dynamic attribute binding
 
- Binding data to HTML attributes (
- ✅ Advanced Attribute Binding - AttributeBinding.vue- Multiple binding syntaxes (v-bind:vs:)
- Dynamic object binding
- Boolean attribute binding
 
- Multiple binding syntaxes (
- ✅ Basic Event Handling - EventHandler.vue- Click events with @click
- Method definitions and execution
- State manipulation through events
 
- Click events with 
- ✅ Form Event Handling - FormEventHandler.vue- Form submission with @submit.prevent
- Two-way data binding with v-model
- Form validation and user input handling
 
- Form submission with 
- ✅ Ref API - RefComponent.vue- Creating reactive references with ref()
- Working with primitive and complex data types
- Updating reactive data (.value syntax)
- Arrays and objects in refs
 
- Creating reactive references with 
- ✅ Reactive API - ReactiveComponent.vue- Creating reactive objects with reactive()
- Nested object reactivity
- Direct property manipulation
 
- Creating reactive objects with 
- ✅ V-For Directive - VFor.vue- Iterating over arrays
- Using :keyfor list optimization
- Accessing array items and properties
- Template rendering for each item
 
- ✅ V-If/V-Else/V-Else-If - VIf.vue- Conditional DOM rendering
- Complex conditional logic
- Loading states and user authentication flows
 
- ✅ V-Show Directive - VIf.vue- CSS-based visibility toggling
- Performance considerations (v-if vs v-show)
- Dynamic UI controls
 
- ✅ Computed Values - VComputed.vue- Reactive computed properties with computed()
- Automatic dependency tracking
- Performance optimization through caching
- Derived state management
 
- Reactive computed properties with 
- ✅ OnMounted Hook - OnMounted.vue- Component lifecycle management
- API calls on component mount
- Async data fetching
- Loading states and error handling
 
- ✅ Props - Balance.vue,IncomeExpense.vue- Parent-to-child data passing
- Prop validation and type checking
- Required props and default values
 
- ✅ Events (Emit) - AddTransaction.vue,TransactionList.vue- Child-to-parent communication
- Custom event emission with defineEmits
- Event payload handling
 
1. Vue Course Examples - Vue-Course/
A comprehensive collection of Vue.js feature demonstrations covering all fundamental concepts.
2. Expense Tracker Application - Expense-Tracker/
A complete CRUD application featuring:
- Add/delete transactions
- Income and expense calculation
- Local storage persistence
- Toast notifications
- Component communication patterns
This learning journey demonstrates proficiency in Vue.js fundamentals and practical application development.

