====== Svelte ====== **Svelte** (vytvořil Rich Harris v roce 2016) není jen knihovna, ale především **kompilátor**. Namísto používání technik jako Virtuální DOM k zjišťování změn, Svelte při sestavení aplikace (buildu) vygeneruje čistý a vysoce optimalizovaný JavaScript, který přímo manipuluje s webovou stránkou. ===== 1. Hlavní rozdíly oproti jiným frameworkům ===== ==== Žádný Virtuální DOM ==== React a Vue musí v prohlížeči neustále porovnávat dvě verze stránky (virtuální a skutečnou), aby věděly, co změnit. Svelte ví přesně, co se má změnit, už ve chvíli, kdy píšete kód. Výsledkem je mnohem vyšší výkon a menší velikost výsledného souboru. ==== Skutečná reaktivita ==== V mnoha frameworkách musíte používat speciální funkce (jako ''useState'' v Reactu), abyste dali systému vědět, že se data změnila. Ve Svelte stačí obyčejné přiřazení hodnoty do proměnné: let pocet = 0; pocet += 1; // Svelte automaticky pozná, že má překreslit HTML ==== Méně kódu ==== Svelte je navrženo tak, aby programátor psal co nejméně "balastu". Stejná aplikace v Reactu může mít o 30–40 % více řádků kódu než ve Svelte. [Image comparison of code volume for the same task in React, Vue and Svelte] ===== 2. Klíčové vlastnosti ===== * **Single-File Components:** Podobně jako u [[it_encyklopedie:sfc|Vue SFC]], i Svelte kombinuje HTML, CSS a JS do jednoho souboru ''.svelte''. * **Vestavěné animace:** Svelte má v sobě integrovaný výkonný engine pro animace a přechody prvků, které jsou plynulé a snadno použitelné. * **Globální správa stavu:** Obsahuje tzv. **Stores**, což je velmi jednoduchý a efektivní způsob, jak sdílet data mezi mnoha komponentami bez nutnosti složitých knihoven typu Redux. ===== 3. Srovnání výkonu ===== Vzhledem k tomu, že Svelte do prohlížeče neposílá žádný "runtime" (samotný framework), jsou aplikace: 1. **Menší:** Rychleji se stahují (ideální pro pomalý mobilní internet). 2. **Rychlejší:** Procesor uživatele nemusí neustále vypočítávat rozdíly v DOMu. ===== 4. Ukázka kódu (Svelte komponenta) =====

Ahoj, {jmeno}!

===== 5. SvelteKit ===== Pro vývoj velkých aplikací existuje **SvelteKit** – oficiální framework postavený nad Svelte (podobně jako Next.js nad Reactem). SvelteKit využívá nástroj [[it_encyklopedie:vite|Vite]] a umožňuje techniky jako Server-Side Rendering (SSR) nebo generování statických stránek. > **Zajímavost:** Svelte v angličtině znamená "štíhlý" nebo "elegantní". To přesně vystihuje jeho filozofii – odstranit veškerý zbytečný kód (framework overhead) a nechat jen to, co uživatel skutečně potřebuje. [[it_encyklopedie:it_architektura_rozcestnik|Zpět na Architekturu]]