Vue Fundamentals
Vue is a JavaScript framework for building interactive web interfaces from reusable components. It connects application state to HTML so the displayed page updates when that state changes.
itWeb development | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Vue Fundamentals
Vue is a JavaScript framework for building interfaces out of components: small, reusable units that each own a slice of markup, logic, and style. Before it, you either hand-wrote DOM updates or committed to a framework that owned your whole page. Vue's pitch is narrower and more polite: it watches your state and patches the page when that state changes. Nothing more dramatic than that.
The load-bearing idea is the reactive state loop. A component declares state, a template reads it, and Vue records which values were read. Change one, and only the work that depends on it gets scheduled — batched, so ten changes cost one update. If you read the DOM immediately after a change, you may see yesterday's answer; await nextTick() is the polite cough that waits for the update to finish.
Second idea: props down, events up. Data flows from parent to child as read-only props; a child reports an interaction by emitting a named event, and the owner of the state decides what to do about it. A computed value derives from state and caches; a watcher performs side effects at external boundaries. Mixing those up — copying state in a watcher instead of deriving it — produces two values that politely disagree with each other.
The surprise is the list key. Give v-for a stable task.id, not the array index: an index knows where a row sits, not which task it is, and reordering will happily attach your input's state to a different record. This is the one bug everyone meets exactly once.
For everything else: the Intro lays out the component and rendering model; Slides compress it into the update path; the Cheatsheet holds the syntax tables. Start there, and don't let v-html near untrusted content — interpolation escapes, v-html does not. Mostly harmless, with that one exception.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://vuejs.org/guide/introduction.html
Supports
- Vue's declarative component model, progressive adoption paths, SFC structure, and API styles
- https://vuejs.org/guide/essentials/template-syntax.html
Supports
- Interpolation, bindings, directives, template compilation, and the v-html security boundary
- https://vuejs.org/guide/essentials/reactivity-fundamentals.html
Supports
- Refs, reactive proxies, deep conversion, DOM update timing, and destructuring limitations
- https://vuejs.org/guide/essentials/computed.html
Supports
- Cached derived values and computed getter constraints
- https://vuejs.org/guide/essentials/watchers.html
Supports
- Watch sources, side effects, flush timing, and watcher cleanup
- https://vuejs.org/guide/essentials/list.html
Supports
- v-for rendering and stable key identity
- https://vuejs.org/guide/essentials/component-basics.html
Supports
- Component trees, registration, props, events, slots, and dynamic components
- https://vuejs.org/guide/components/props.html
Supports
- One-way prop flow, validation, and mutation boundaries
- https://vuejs.org/guide/components/events.html
Supports
- Child-to-parent custom events and event declaration
- https://vuejs.org/guide/essentials/lifecycle.html
Supports
- Component lifecycle stages and lifecycle hooks
- https://vuejs.org/guide/reusability/composables.html
Supports
- Reusable stateful Composition API logic and cleanup conventions
- https://vuejs.org/guide/scaling-up/sfc.html
Supports
- Single-File Component blocks, compilation, and scoped styles
- https://vuejs.org/guide/extras/rendering-mechanism.html
Supports
- Compile, mount, patch, virtual DOM, dependency tracking, and update behavior
- https://vuejs.org/guide/scaling-up/state-management.html
Supports
- Shared state ownership and Pinia recommendation
- https://vuejs.org/guide/scaling-up/tooling.html
Supports
- create-vue, Vite, IDE tooling, browser DevTools, testing, and linting
- https://vuejs.org/guide/scaling-up/ssr.html
Supports
- Server rendering, hydration, request isolation, and platform boundaries
- https://vuejs.org/guide/best-practices/production-deployment.html
Supports
- Production error tracking and production build behavior
- https://router.vuejs.org/introduction.html
Supports
- Routing features and study-path rationale
- https://pinia.vuejs.org/introduction.html
Supports
- Store model and role in shared Vue application state
- https://vuejs.org/guide/scaling-up/testing.html
Supports
- Unit, component, and end-to-end testing boundaries
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the curated Awesome Vue list
- https://github.com/vuejs/awesome-vue
Supports
- Discovery of VueUse, eslint-plugin-vue, Storybook, Vue Test Utils, Vue I18n, and unplugin-icons
- https://vueuse.org/guide/
Supports
- Composition API utility categories and reusable browser integrations
- https://eslint.vuejs.org/
Supports
- Vue template and script linting, syntax, directives, and style rules
- https://storybook.js.org/docs/get-started/frameworks/vue3-vite
Supports
- Isolated Vue component development, testing, and documentation
- https://test-utils.vuejs.org/guide/
Supports
- Vue component mounting, wrapper interaction, and behavior assertions
- https://vue-i18n.intlify.dev/guide/
Supports
- Vue localization, messages, formatting, and Composition API integration
- https://unplugin-icons.github.io/unplugin-icons/
Supports
- On-demand icon imports as framework components
- https://nuxt.com/docs/getting-started/introduction
Supports
- Vue full-stack framework conventions, rendering modes, routing, data, and deployment
- https://quasar.dev/introduction-to-quasar/
Supports
- Vue component framework and multi-platform build modes
- https://vuetifyjs.com/en/introduction/why-vuetify/
Supports
- Material Design Vue component suite and support options
- https://primevue.org/
Supports
- Vue component suite, styled and unstyled modes, and commercial add-ons
- https://element-plus.org/en-US/guide/design.html
Supports
- Vue 3 component suite, design principles, theming, localization, and SSR documentation
- https://www.naiveui.com/
Supports
- TypeScript Vue component suite and theme configuration
- https://vite.dev/guide/
Supports
- Development server, plugin transformation, and production builds
- https://devtools.vuejs.org/guide/
Supports
- Inspection of Vue components, events, routes, and stores
- https://github.com/vuejs/vue/releases/tag/0.6.0
Supports
- Vue 0.6 release date and early public release
- https://github.com/vuejs/vue/releases/tag/1.0.0
Supports
- Vue 1.0 release date and stable major milestone
- https://github.com/vuejs/vue/releases/tag/v2.0.0
Supports
- Vue 2.0 release date and renderer changes
- https://github.com/vuejs/vue-cli/releases/tag/v3.0.0
Supports
- Vue CLI 3 release date and plugin-based tooling
- https://github.com/vuejs/vue/releases/tag/v2.6.0
Supports
- Vue 2.6 release date and slot syntax changes
- https://blog.vuejs.org/posts/vue-3-one-piece
Supports
- Vue 3 release date, Composition API, renderer, reactivity, TypeScript, and built-ins
- https://blog.vuejs.org/posts/vue-3.2
Supports
- Vue 3.2 release date and stable script setup and style state bindings
- https://blog.vuejs.org/posts/vue-3-as-the-new-default
Supports
- Vue 3 default transition date and ecosystem changes
- https://blog.vuejs.org/posts/vue-2-7-naruto
Supports
- Vue 2.7 release date and backported Composition API features
- https://v2.vuejs.org/eol/
Supports
- Vue 2 end-of-life date and maintenance status
- https://blog.vuejs.org/posts/vue3-5
Supports
- Vue 3.5 release date, reactivity changes, watcher cleanup, and hydration improvements
- https://v3-migration.vuejs.org/breaking-changes/watch.html
Supports
- Watch callbacks on arrays trigger only on replacement unless deep is set
- https://v3-migration.vuejs.org/breaking-changes/events-api.html
Supports
- Removal of the dollar-prefixed instance event emitter methods and event bus replacement guidance
- https://vuejs.org/guide/best-practices/performance.html
Supports
- Props stability in list updates, deep reactivity overhead on large structures, and shallowRef opt-out
- https://blog.vuejs.org/posts/vue-3-4
Supports
- Vue 3.4 release date, Reactivity Transform removal, and reactivity efficiency changes
