React, Angular vagy Vue.js – frontend framework esetén nagyjából ők a „piacvezetők”, A Stylers is ezeket a frontend technológiákat használja. Mivel mindegyikben van már olyan projektünk, ami productionben van, így nagy tapasztalatok halmozódtak fel cégen belül a három technológiát illetően – ezt szeretnénk most veletek megosztani.
Nincs konkrét frontend preferenciánk, a Stylers-nél általában a csapat választja ki a számára és a projekt számára a legmegfelelőbbet. Mindegyik technológiának vannak előnyös és kevésbé kedvelt tulajdonságai. Amit minden esetben szem előtt kell tartani, mikor letesszük a voksunkat egyik vagy másik mellett, hogy az adott feladattal kapcsolatban felmerült problémánkat melyik frameworkkel lehet a legjobban orvosolni. A Stylers-es srácok Magyarország piacvezető állásportáljánál Vue .js-t használnak, egy utazásfoglaló portálnák Angulart, az adminisztrációs felületeket fejlesztő projektjeinknél pedig Reactoznak, illetve mobil alkalmazásoknál néha React Native-ot használnak.
REACT VS. ANGULAR
Kétségtelen, ma a Facebook által kifejlesztett React és a Google nevéhez fűződő Angular a két legnépszerűbb technológia a frontend JavaScript fejlesztők körében, amivel interaktív single-page alkalmazásokat lehet készíteni. A két technológia között bizonyos területeken vannak átfedések – például az alkalmazás frontend nézeteinek elkészítése esetén –, mi most a különbözőségeket vesszük sorra röviden.
- A Reactet komponens alapú nézetek készítésére tervezték, ezért önmagában a Reacttel nem tudsz web alkalmazást készíteni. Ezt úgy orvosolta a Facebook, hogy kifejlesztette a Flux architektúrát, ami kiegészíti a Reactet és megvalósítja az egyirányú adatforgalom koncepcióját. Egy Angular alkalmazásban a komponensekből épül fel egy UI.
- Az Angular alkalmazások TypeScriptben készülnek, és egy átalakító programot használnak a .ts fájl egyszerűbb .js fájlra való átfordításához. Ha Reactben dolgozunk, az ES6 szabványt vagy a hagyományos JavaScript nyelveket is használhatjuk.
- A Reactben egyirányú, azaz fentről lefelé irányuló adatfolyam valósul meg, míg az Angularban kétirányú ez a folyamat.
- A React és az Angular is olyan JavaScript frontend könyvtár, ami kliens oldali rendelést tesz lehetővé. Ennek a fajta rendelésnek az a hátránya, hogy SEO szempontból nem működik jól, és nem teljes HTML tartalmat ad vissza, amikor az oldal linkjét megosztjuk egy social media felületen. Az Angular erre a problémára az Angular Universal könyvtárt fejlesztette ki megoldásként, ami gondoskodik arról, hogy social media barát tartalom generálódjon. A React esetében a Redux-szallehet orvosolni ezt a kérdést.
(A React és az Angular közötti különbségeket egy későbbi posztban részletesebben is kifejtjük.)
React Native-ot is szívesen használjuk, több alkalmazást is fejlesztettünk már ezzel. A React Native a React család tagja, de weben nem működik, ez kifejezetten mobilalkalmazások fejlesztésére van kitalálva, Reactos szemlélettel. Eléggé hasonlít a szintaktikájuk is, de a mobil platform miatt azért különböznek benne az egyes komponensek. Fő előnye, hogy egyszerűbbé teszi a munkát, mikor a webes platformot Reacttal készítjük el.
A Vue.js is egy JavaScript keretrendszer. Nagy előnye, hogy szétválasztja az üzleti logikát és a megjelenítést. A Vue magja viszonylag kicsi, amit több opcionális könyvtárral lehet kibővíteni, így komplex alkalmazások elkészítésére is alkalmas. Nagy előnye az Angularral és a Reacttel szemben, hogy apránként sajátítható el, emiatt gyorsan bele lehet kezdeni egy alkalmazás fejlesztésébe, míg a többi keretrendszer esetében hosszú tanulási idővel kell számolnunk.