# Vue

*Vue.js*

Vue is a JavaScript framework for building interfaces out of components whose display updates automatically when their data changes. It can run a whole application or a single widget inside a page that is otherwise plain HTML.

**Canonical:** https://spoko.space/glossary/vue/  
**Language:** en  
**Category:** Technology  
**Also known as:** Vue.js, Vue 3  
**Published:** 2026-09-22  
**Glossary:** https://spoko.space/glossary/

---
## What it is {#what-it-is}

A way of describing a piece of interface as a component: some markup, the data it displays, and what happens when that data changes. Change the data and Vue updates the part of the page that shows it. You never write the "find the element and set its text" code, which is where most hand-rolled interactivity goes wrong.

A component can be the whole screen of an application or one filter panel on an otherwise static page. That range is Vue's most useful property and the reason I keep reaching for it.

## Why it matters if you are paying for a website {#why-it-matters-if-you-are-paying-for-a-website}

Mostly it should not. If a page needs a menu that opens and a form that validates, a framework is overhead you pay for in downloaded code and in a build step.

It starts earning the moment state gets complicated: a catalogue with filters that have to agree with the URL, a configurator where six fields change one price, a table that sorts and paginates without a reload. Written by hand, those become a pile of listeners that disagree with each other by the third change request.

## Where I actually use it {#where-i-actually-use-it}

Two places, and they look different.

**As an island inside a static page.** The page is prerendered HTML and one component — the filter, the calculator — is Vue. The visitor downloads the framework only on the pages that have one.

**As the front end of a Laravel application.** The parts catalogue I built runs Vue 3 against a Laravel backend, which is the shape most of my application work takes: PHP owns the data, the permissions and the background jobs, Vue owns the screen.

What I avoid is the third shape — a marketing site rebuilt as a single-page application, where every visitor downloads a framework to read prose and the search engines get an empty `<div>` until the JavaScript runs.

## What Vue is not {#what-vue-is-not}

It is not a competitor to WordPress or to a CMS; it does not store or edit content. It is also not automatically bad for SEO — rendered on the server or at build time, a Vue page is ordinary HTML. It is bad for SEO when it is shipped as an empty page that fills itself in the browser, which is a choice about rendering, not about the framework.

## Related terms {#related-terms}

- [Astro](https://spoko.space/glossary/astro/): Astro is a web framework that renders pages to HTML at build time and ships no JavaScript unless a component asks for it. Interactive pieces are declared one by one as islands, so a page carries the code for those and nothing else. — Markdown: https://spoko.space/glossary/astro.md
- [Laravel](https://spoko.space/glossary/laravel/): Laravel is a PHP framework for building web applications — the kind with accounts, permissions, a database and work that runs in the background. It supplies the parts every application needs so they are not rebuilt by hand on each project. — Markdown: https://spoko.space/glossary/laravel.md
- [CMS](https://spoko.space/glossary/cms/): A CMS is the software that lets someone change a website without touching code. The word covers three separate jobs — editing, storing and displaying content — and most arguments about which CMS to use are really arguments about which of the three you need. — Markdown: https://spoko.space/glossary/cms.md
- [headless CMS](https://spoko.space/glossary/headless-cms/): A headless CMS stores and edits content but does not render the website. The pages are built by something else, which reads the content over an API — so the editing tools and the front end can be changed independently of each other. — Markdown: https://spoko.space/glossary/headless-cms.md

## Where I write about this {#related-posts}

- [Parts & Accessories Catalog](https://spoko.space/vw-polo-6r-parts-catalog/) — Markdown: https://spoko.space/vw-polo-6r-parts-catalog.md
  Headless CMS parts catalog for VW Polo 6R. Astro SSG, Vue 3, Laravel API, Filament admin, AI descriptions, DeepL translations and Cloudflare R2 image pipeline.
- [Spoko Design System](https://spoko.space/spoko-design-system/) — Markdown: https://spoko.space/spoko-design-system.md
  Open-source Astro design system with Vue 3 components and UnoCSS. Published as npm package — documentation site and reusable component library in one.
- [E2E Testing with AI and Playwright (2026) — Practical Guide](https://spoko.space/blog/e2e-tests-ai-playwright-guide/) — Markdown: https://spoko.space/blog/e2e-tests-ai-playwright-guide.md
  Where AI actually saves time in Playwright E2E tests: selector strategy, prompt patterns, MCP integration, and real ROI numbers from production projects.
- [7× Faster E2E Tests: Solving a Laravel Session Bug That Looked Like Flaky Playwright Tests](https://spoko.space/blog/playwright-laravel-parallel-e2e/) — Markdown: https://spoko.space/blog/playwright-laravel-parallel-e2e.md
  How a session architecture problem masquerading as flaky Playwright tests brought a Laravel CI suite to its knees — and how per-worker sessions, a seed API, and a tuned PHP server fixed it.
- [Web application vs website — what is the difference?](https://spoko.space/blog/web-application-vs-website/) — Markdown: https://spoko.space/blog/web-application-vs-website.md
  A website presents content. A web application lets the user do something. See the differences, when to choose which, and how much each costs.
- [Web Application Frameworks in 2026](https://spoko.space/blog/web-application-frameworks-2026/) — Markdown: https://spoko.space/blog/web-application-frameworks-2026.md
  Astro, Vue, React, Next.js or headless WordPress? A practical comparison of the popular frameworks with performance benchmarks and usage scenarios.

## See also {#see-also}

- [Web development](https://spoko.space/web-development/)

## Sources {#sources}

- [Vue.js — introduction](https://vuejs.org/guide/introduction.html) — The component model and the two ways of writing one.
- [Vue.js — reactivity in depth](https://vuejs.org/guide/extras/reactivity-in-depth.html) — What "the view updates itself" actually costs under the hood.
