Sobes.tech
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:

  1. 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):
    • 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.
  2. 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).