# 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