Middle
Kokie yra būdai įgyvendinti routing frontend kūrime?
sobes.tech AI
Atsakymas iš AI
Yra du pagrindiniai būdai įgyvendinti maršrutizavimą priekinėje dalyje:
-
Kliento maršrutizavimas: Maršrutizavimas vyksta tiesiogiai naršyklėje naudojant JavaScript.
- Veikimo principas: Naršant, puslapis nėra visiškai perkraunamas. JavaScript keičia URL naršyklės adreso juostoje (naudodamas History API) ir dinamiškai įkelia arba perpiešia reikalingus komponentus ar puslapio dalis.
- URL būklė:
- Naudoja History API (
pushState,replaceState). URL yra švarus, be#. - Gali naudoti žymą (
#) URL (pasenusi metodika):
- Naudoja History API (
- Privalumai:
- Pagerina naudotojo patirtį (greitesni perėjimai, be visiško perkrovimo).
- Tinka vieno puslapio programoms (SPA).
- Trūkumai:
- Reikalauja papildomos serverio konfigūracijos, kad būtų tinkamai apdorojami tiesioginiai URL įėjimai (pvz., fallback į index.html).
- Gali būti SEO problemų, jei turinys yra rodomas tik kliento pusėje (sprendžiama SSR arba pre-rendering).
- Populiarios bibliotekos/rėmai: React Router, Vue Router, Angular Router.
-
Serverio maršrutizavimas: Maršrutizavimas visiškai vyksta serveryje.
- Veikimo principas: Kiekvieno naujo URL užklausos metu naršyklė siunčia užklausą serveriui. Serveris apdoroja užklausą, nustato, kokį turinį grąžinti, ir siunčia pilną HTML puslapį klientui. Naršyklė visiškai perkrauna puslapį.
- URL būklė: URL atitinka tikrąjį serverio išteklių.
- Privalumai:
- Paprastesnė įgyvendinimas daugia puslapių programoms.
- Puiki indeksacija paieškos sistemų (SEO), nes turinys yra iš karto prieinamas.
- Nereikalauja JavaScript pagrindinei navigacijai.
- Trūkumai:
- Lėtesni perėjimai tarp puslapių dėl visiško perkrovimo.
- Mažiau interaktyvus naudotojo patirtis lyginant su SPA.
- Pavyzdžiai: Tradicinės interneto programos, kur kiekvienas URL atitinka atskirą failą ar maršrutą serveryje (pvz., PHP, Python su Django/Flask, Node.js su Express ir kt.).
Šiuolaikiniuose priekinės dalies įrenginiuose, ypač SPA, kliento maršrutizavimas yra standartas. Serverio maršrutizavimas dažniau naudojamas daugia puslapių svetainėse arba kartu su kliento maršrutizavimu siekiant pagerinti SEO (pvz., SSR).