Vue.js is a progressive JavaScript framework for building user interfaces. It was created by Evan You and designed so teams can adopt it gradually, from adding interactivity to one part of a page to building a full single-page application.
Vue focuses on the view layer, but with the official ecosystem (Vue Router, Pinia, Vite, and Vue Devtools) it can power complete production applications. Vue 3 is the modern standard and is recommended for all new projects.
| Tool | Purpose | When to Use |
|---|---|---|
| Vue Router | Client-side routing | Multi-page flows inside SPA |
| Pinia | State management | Shared state across many components |
| Vite | Build tool and dev server | Fast local development and modern builds |
| Vue Devtools | Debugging | Inspect components, props, events, and stores |
| Vitest | Testing | Unit and component test suites |
| Feature | Vue 2 | Vue 3 |
|---|---|---|
| Main API | Options API | Options API + Composition API |
| Reactivity Engine | Object.defineProperty | Proxy-based |
| TypeScript Experience | Limited | First-class |
| Performance | Good | Improved runtime + smaller bundles |
| Status | Legacy / migration projects | Current recommended version |
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vue Intro</title>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<body>
<div id="app">
<h2>{{ title }}</h2>
<p>Count: {{ count }}</p>
<button @click="count++">Increment</button>
</div>
<script>
const { createApp } = Vue;
createApp({
data() {
return { title: 'Hello Vue 3', count: 0 };
}
}).mount('#app');
</script>
</body>
</html>npm create vue@latest
cd your-project-name
npm install
npm run devsrc/
assets/
components/
views/
router/
stores/
composables/
App.vue
main.jsref, reactive, computed, and watch.Explore 500+ free tutorials across 20+ languages and frameworks.