Vue.js
How to judge a quote that builds your product in Vue
The short answer
Vue is an open-source JavaScript framework for building the part of an application people see and click. It ships more of the answer in the box than React does, and it's less prescriptive than Angular. Its main practical cost is a smaller hiring pool in North America, not a technical ceiling.
The quote names three or four things you can't evaluate, and Vue is one of them. It isn't a fringe pick and it isn't the default either, which is what makes it hard to judge from outside. Here's what it is, what it's good at, and what to settle before you sign.
What kind of thing Vue is
Vue is an open-source JavaScript framework for building the part of a product people see and click. Buttons, forms, tables, anything that changes on screen without a page reload. It doesn't store your data, handle payments or run your server.
It's been around since 2014, it's free under an open licence, and it has no corporate owner, where React has Meta and Angular has Google. That independence cuts both ways, and which way depends on how long you expect the product to live.
One version fact matters most. Vue 3 is the current major version, and Vue 2 stopped getting free security updates at the end of 2023. If you're inheriting a build, ask which one you're getting.
One file per piece of the interface
Vue is built around the single-file component: the markup for one piece of the interface, the behaviour behind it and its styles, in one file. A search box is a file. The header is a file. The markup is ordinary HTML with extra attributes.
That sounds like housekeeping and it isn't. When something on screen is wrong there's one place to look, and the styles in that file apply nowhere else, so the fix that quietly breaks another page gets rarer.
One catch. Vue has two ways of writing the behaviour half, the older Options API and the newer Composition API. Both are current and either is fine. A codebase using both at random, because nobody decided, is what costs you at handover.
The middle path is a position, not a compromise
React and Angular sit at two ends of a range. Vue is the middle.
React gives you the rendering and leaves the rest open. Routing, shared state, build setup: all picked from a large ecosystem, per project. The flexibility is real, and two React codebases can share almost nothing but the library.
Angular goes the other way. Routing, forms, structure and TypeScript come with it, along with opinions about how code is organised. Every Angular project resembles every other, which is the point and a lot of framework for a small application.
Vue ships an official router, an official store for shared state and official build tooling, documented in one place by the same team. You can swap any of it and most teams don't, so two Vue codebases tend to resemble each other and somebody new has less of your arrangement to learn.
React
Rendering only. The rest is yours to choose.
Vue
Official router, store and tooling. Still swappable.
Angular
Routing, forms, structure, TypeScript. All assumed.
You assemble the pieces
The framework decides
- You assemble the pieces
React
Rendering only. The rest is yours to choose.
Vue
Official router, store and tooling. Still swappable.
Angular
Routing, forms, structure, TypeScript. All assumed.
- The framework decides
Nuxt is the part that finishes it
Vue on its own builds what runs in the browser. A visitor gets a mostly empty page and Vue fills it in. Behind a login nobody notices. For anything you want found in search, you pay to work around it.
Nuxt is the framework built on top of Vue that answers that. Pages render before they reach the browser, folders become URLs, and a library of add-ons covers the usual jobs. It's roughly what Next.js is to React.
It isn't free. A page rendered before it arrives needs something doing the rendering, so hosting becomes a running service rather than a folder of files. And you keep two things current instead of one.
So the question isn't Vue or Nuxt. It's whether this product needs what Nuxt does.
Vue on its own
Vue with Nuxt
- What arrives
Vue on its own: A near empty page that fills in once the scripts run.
Vue with Nuxt: A finished page, built on request by something you host.
- Search and previews
Vue on its own: Extra work, and easy to get subtly wrong.
Vue with Nuxt: Handled by default. Hosting becomes a running cost.
- Staying current
Vue on its own: Vue plus the few libraries you chose.
Vue with Nuxt: Vue plus Nuxt plus its add-ons, moving together.
- A new developer
Vue on its own: Knows Vue, then reads your arrangement.
Vue with Nuxt: Knows Vue, then learns Nuxt's conventions.
Where it stops, and it isn't performance
Nearly anything you can build in React you can build in Vue, and the speed difference won't decide whether your product works. The ceiling is somewhere else.
It's at the edges of the ecosystem. A heavy data grid, a charting library, the widget your payment provider hands you: the React version more often exists first and has the most questions answered. A Vue equivalent usually exists, sometimes as a wrapper one person maintains in their spare time.
The other edge is mobile. If the plan includes a native app sharing work with the web app, React Native is the well-travelled route. Vue reaches mobile by other means, with fewer people ahead of you.
Both are checkable in an afternoon before you commit, and expensive to find out after.
Who has to be around in year two
Vue doesn't create an operations job. No server of yours to patch, no platform bill attached. What it costs is people. It asks what every framework asks: who maintains this once the build is finished.
The pool of Vue developers in North America is smaller than React's, and public developer surveys put React use well ahead. That's not a judgment about the code. It's arithmetic about how long your next hire takes, and what happens the week the one person who knows the codebase resigns.
There's a counterweight. The template is close to what they already write, so a developer who knows JavaScript, HTML and CSS picks Vue up quickly. The constraint isn't that Vue people can't be found. It's that nobody wants to pay for two weeks of somebody learning.
The maintenance story should pick the framework, not the other way round. If you intend to staff this in-house eventually, that's a real argument for React with nothing to do with the code. If an outside firm will hold it, that argument mostly disappears.
Worth knowing before you start
Ask which major version the project is on. Vue 2 stopped getting free security updates at the end of 2023, so an inherited Vue 2 codebase is either unpatched or on paid extended support.
Ask whether the code uses the Options API, the Composition API, or both. One of them is a decision. Both, mixed at random, is what a codebase looks like when nobody set a standard.
Name the two or three specialised components you actually need, the data grid, the chart, the map, the payment widget, and check a maintained Vue version exists for each.
If search visibility matters, ask whether pages render before they reach the browser. Vue alone hands over a near empty page and fills it in: fine behind a login, a problem in public.
Common questions
On the software side, yes. Years of production use, actively maintained, openly licensed. The risk isn't the framework. It's whether you can staff it in five years.
For someone who already writes HTML and CSS, Vue reads more like what they know. Whether that makes it easier depends on the person, and it's a weak reason to pick a framework either way.
Only if you need what Vue alone doesn't do: pages rendered before they reach the browser, for search results and link previews. An internal tool behind a login usually doesn't. A public marketplace does.
The same as with any framework. The code stays and the context goes. Vue's advantage is that the router, the store and the tooling have official answers, so a replacement has less to decode. The disadvantage is fewer people nearby.
Not cheaply, and that's true of every frontend framework. The interface gets rebuilt, while your data, backend and URLs survive. If lock-in worries you, spend that worry on the data model.
Related
Want to talk through your situation?
A short call is usually enough to tell whether this is the right work for you. If it isn’t, we’ll say so.