by: Alex Voerman
FRONT END FRAMEWORK
Should we declare a winner at the end?
A platform that provides a foundation for developing software applications
1996 Advent of JavaScript
~2006
jquery era
~2010
SPA era
~2014
component era
~2018
full stack SSG/SSR
2021+
web components / wasm
👑
Released 2013
by Facebook
"Unopinionated"
often called a "library"
❌ router
✅ dom manipulation
❌ http client
❌ official testing framework
⚪ state management
Released 2016
by Google
Released 2010
"Opinionated"
often called a "platform"
✅ router
✅ dom manipulation
✅ http client
✅ official testing framework
✅ state management
Released 2014
by Evan You (Community-driven)
Somewhat opinionated
calls itself a "progressive framework"
✅ router
✅ dom manipulation
❌ http client
❌ official testing framework
✅ state management
Usage (Stateofjs.com)
Interest
Awareness
👑
Bundle sizes
React
Angular
Vue
small
👑
small
small
great
great
great
Runtime Performance
👑
👑
React
Angular
Vue
React
Angular
Vue
JSX
Typescript Classes, standalone HTML, CSS
Split JS/HTML/CSS in same file
React
React
Angular
Vue
React
Angular
Vue
Typescript based: Great for Object Oriented (.NET / Java) Devs.
Great for beginners, knowledge of HTML/CSS.
React API is very small. Learning ecosystem is important.
👑
create-react-app
angular-cli
Vue CLI
ejects webpack
ejects webpack
no ejecting (webpack based)
👑
React
Angular
Vue
angular.json (config)
vue.config.js
Built in options
vuex
👑
limited out of the box support
3rd party redux very popular
3rd party ngrx-store
React
Angular
Vue
Built in sass or css support
Auto scoped
css, sass, css modules
3rd party integrations - "CSS in JS", css modules
React
Angular
Vue
Not auto-scoped by default
👑
React
Angular
Vue
3rd party: react-testing-library using jest
built in framework for testing, uses karma + jasmine
3rd party: vue-testing-library using jest
👑
React
Angular
Vue
SSR
SSG
👑
great for...
less ideal for...
* Devs with OOP experience (C# or Java)
* Teams that need strict boundaries
* Getting enterprise-grade apps up and running quickly
* Beginners, devs/UX designers with HTML/CSS experience
* Running on top of old, legacy apps
* Finding devs with experience
* Teams with strong leads or devs that can make decisions
* Flexibility - weird environments
* SSG / SSR
* Finding devs with experience
React
Angular
Vue
* Weird build situations (heavy webpack is needed)
* Teams with limited guidance