# Frontend Development
## Concepts
- Virtual DOM, reconciliation, and VDOM diffing.
- In VDOM model, `UI = fn(state)`, when states change, UI is re-rendered. It's straightforward but expensive.
## Frameworks
- Multiple [[css#Frameworks|CSS frameworks]]
- Legacy [[mvc#Frameworks|MVC Frameworks]]
- AJAX and jQuery
- Angular (October 2010, then `v2` in September 2016)
- [[react|React]] (May 2013) -- virtual DOM
- [[vue|Vue]] (February 2014) -- virtual DOM but with better perf, Vapor mode is coming.
- Preact (November 2015) -- compatible to React API but smaller and faster
- [[svelte|Svelte]] (November 2016) -- No virtual DOM, reactivity through compiler
- Solid.js (April 2018) -- No virtual DOM, fine-grained reactivity
- Alpine.js (November 2019) -- sometimes considered a modern alternative for jQuery.
- HTMX (April 2020) -- extending functionalities of HTML itself.
- [[astro|Astro]] (June 2021) -- static site generation, strips off JavaScript, "island" design, works with other frameworks.
- Qwik (September 2021) -- "resumable" apps, lazy loading JavaScript
- Meta frameworks