Řekněme jako příklad, že bych měl web:
Ten by měl 3 pages:
- Home (Landing page)
- Recepty
- Ingredience
Uživatel přijde na landing page a v menu si vybere Recepty. Zde bude chtít vyrábět nový Recept "Kůře s bazalkovou omáčkou". V průběhu tvorby bude přidávat ingredience a zjistí, že chybí v databázi ingredience "Bazalka". Klikne proto na page Ingredience, vyrobí novou ingredience "Bazalka", a jde zpět na page Recepty, kde pokračuje v rozpracovaném receptu "Kůře s bazalkovou omáčkou". Poté klikne na Uložit a nový Recept je vytvořen.
implementace v React.jsV Reactu můžu udělat klasickou SPA se Store, do kterého budou načtené Recepty i Ingredience, a přepínání mezi page Recepty a Ingredience tak proběhne bez ztráty Store. Uživatel díky tomu bude mít rychlé přechody, a taky může na stránce Recepty dál pokračovat v rozpracovaném receptu.
Implementace PHP (Nebo jiný SSR) a Alpine.js (nebo jQuery)Pro lepší SEO můžu použít kombinaci výše evedeného, tedy Home, Recepty i Ingredience jsou vrácené jako SSR (z PHP), a ve "<script>" se nechází oživení webu přes Javascript pomocí Alpine.
Avšak bez implementaci nějakého "handmade" store ukládaného do LocalStorage browseru nebude mít user ten zážitek, že může mít rozpracovaný Recept "Kůře s bazalkovou omáčkou", kde následně do Ingredience něco přidá, klikne zpět na Recepty a může pokračovat kde předtím skončil. (Jako kdyby měl Excel a v něm kartu "Recepty" a "Ingredience")
Next.jsTak a teď přijde ta pointa. Zkoumám právě ten Next.js, a nemůžu si pomoct, ale nevidím, jakou přidanou hodnotu dostanu oproti kombinaci "PHP + Alpine.js", nebo "Python Django + Alpine" atp. Resp. výhodu momentálně vidím zatím jen v těchto věcech:
- Můžu použít Tailwind, s PHP+Alpine bych nemohl
- Diskutabilní výhoda: Můžu mít na backendu Javascript - já však stáe preferuje na backendu jiný jazyk.
Tedu pro mě je teď jediné dilema a to je použití Tailwind. Mimochodem, je to odemě sice asi škaredé, ale ač je Tailwind krásný, sám jsem si zkusil, že jeho templates jdou 1:1 okopírovat a udělat v CSS. Ale je to dilema, protože Tailwind to samozřejmě zjednodušuje.