Why React
History¶
jQuery¶
- DOM manipulation library
- App state is in the DOM
- Just read what's on the page to see the state
- Problem: DOM as global state
- Hard to debug and understand what changed what when you have a ton of mutations
Angular 1¶
- Opinionated all in one tool
- Everything out of the box
- 2 way data binding
- Model, view, controller
- Routing
- Templates
- mini jQuery
- ..
- 2011: lots of backend devs having to write frontends
[!Problems with Angular 1]- - 2 way data binding - Hard to understand & debug code - not performant, constantly check for updates
Why React¶
One way data binding¶
[!Benefits of one way data binding]- 1. easier to debug 2. more performant, only run code when it needs to
[!How does React do one way data binding?]-
rendered app = f(state)
state changes -> re-render app
Components¶
[!Why weren't there components before React?]- React rethought: the default separation of concerns: HTML, CSS, JS
- they're all the concern of the component
- Lots of initial dev hate
[!How did React implement components?]- JSX: HTML, CSS & JS in one view = f(state) - compose components - view = comp1(comp2(state))
[!Biggest benefit of components]- Scalable design systems - build your own - or 3rd party - Material UI
Last update:
2023-04-24