Skip to content

Vue Foundations

Vue Foundations picks up where React Foundations left off. You already know how to build reactive SPAs — components, state, routing, and side effects. Now you will apply that foundation to Vue 3, where the same concepts look and feel different: Single-File Components, the Composition API, Vue Router, and Pinia.

Every concept in this course is applied directly to FamilyTree — an interactive family tree SPA that you build from scratch across all seven modules.

  • Vue fundamentals — what Vue is, how Vite scaffolds a project, and how Single-File Components work
  • ComponentsdefineProps, defineEmits, slots, and how data flows between parent and child
  • Reactivityref, reactive, computed, watch, watchEffect, and the Vue lifecycle
  • Directivesv-bind, v-on, v-if, v-for, v-model, and class/style bindings
  • Vue Router — client-side routing, RouterView, RouterLink, route parameters, and navigation guards
  • PiniadefineStore, state, getters, actions, storeToRefs, and persisting state across sessions

This course assumes you have completed TypeScript Foundations or have equivalent knowledge. You should be comfortable with TypeScript types, interfaces, generics, and async/await. No prior Vue experience is assumed.

All seven modules build the same real application — FamilyTree, an interactive family tree SPA where you can record people, relationships, and navigate a focus-view tree. You can browse the source on GitHub.

The finished app:

  • Lets you add people with names, birth/death years, and a short bio
  • Displays a focus-view tree showing parents, siblings, the focused person, their spouse, and children
  • Lets you click any person to shift focus, navigating the tree
  • Supports biological parents, step-parents, biological children, step-children, siblings, and multiple spouses with marriage and divorce dates
  • Persists your entire family tree to localStorage so it survives page refreshes

By Module 07 you will wire all of these pieces together into a working, deployed Vue app.