As part of Neontribe's ongoing technology evaluation for projects, Nick and myself recently performed a comparative review of React and Vue, looking at both technical and community aspects. This post provides a very brief overview of what we discovered.

It's very clear that both projects are broadly similar and are closely monitoring each other, so that features that appear in one often also appear in the other. For example, SPA build support is available in Vue's Nuxt and will soon be appearing for React too. Given that, YMMV depending on when you read this post.

Current differences

ReactVue
tl;dr - code based with many choices, unlikely to hit technical, HR or market limitstl;dr; declarative, more opinionated/structured, easier onramp and potential faster dev
Massive, mature ecosystem provides many learning resources, strong support and wide component choicesSmaller ecosystem, newer but growing fast and looks sustainable. Relatively opinionated means less choice
Everything is just JavascriptDeclarative HTML based - Single File Components
View is Render functions or JSXOptional view templates with DSL - somewhat simpler for common cases
Enforced unary state flow within a componentReactive state updates and optional 2-way binding
Many non-core CSS optionsScoped CSS directly supported
Possibly better for v big appsLow barrier to entry, eg using Nuxt framework for SPAs
Working native app supportFaster (sometimes - largely due to snabbdom)

Similarities

  • Components
  • Render functions or JSX for view
  • State and event handling, HTTP library agnostic
  • ES6+ or TypeScript
  • SSR
  • Dev tooling - eg webpack with HMR
  • Deployment sizes
  • Support for PWA
  • Low churn in core elements
  • MIT License

Useful resources