Routing
Nykyaikaisissa verkkosovelluksissa reititys viittaa prosessiin, jossa hallitaan navigointia eri näkymien tai komponenttien välillä nykyisen URL-osoitteen tai polun perusteella. webforJ:ssä reititys luo monimutkaisen kehyksen asiakaspään navigaatiolle, jossa käyttöliittymän päivitykset tapahtuvat dynaamisesti ilman täydellisiä sivulatauksia, mikä parantaa sovelluksen suorituskykyä.
Perinteinen vs asiakaspään reititys
Perinteisessä palvelinpuolen reitityksessä, kun käyttäjä napsauttaa linkkiä, selain lähettää pyynnön palvelimelle uudelle asiakirjalle. Palvelin vastaa lähettämällä uuden HTML-sivun, mikä pakottaa selaimen arvioimaan CSS:n ja JavaScriptin uudelleen, renderöimään koko asiakirjan ja palauttamaan sovelluksen tilan. Tämä sykli aiheuttaa viiveitä ja tehottomuuksia, sillä selaimen on ladattava resursseja ja sivuston tila uudelleen. Prosessi sisältää yleensä:
- Pyyntö: Käyttäjä navigoi uuteen URL-osoitteeseen, mikä laukaisee pyynnön palvelimelle.
- Vastaus: Palvelin lähettää takaisin uuden HTML-asiakirjan yhdessä siihen liittyvien resurssien (CSS, JS) kanssa.
- Renderöinti: Selain renderöi koko sivun uudelleen, usein menettämällä aikaisemmin ladattujen sivujen tilan.
Tämä lähestymistapa voi johtaa suorituskyvyn pullonkauloihin ja suboptimaisiin käyttäjäkokemuksiin, jotka johtuvat toistuvista täydellisistä sivulatauksista.
Asiakaspään reititys webforJ:ssä ratkaisee tämän mahdollistamalla navigoinnin suoraan selaimessa, dynaamisesti päivittämällä käyttöliittymän ilman, että lähetetään uutta pyyntöä palvelimelle. Tässä on, miten se toimii:
- Yksinkertainen alkuperäinen pyyntö: Selain lataa sovelluksen kerran, mukaan lukien kaikki tarvittavat resurssit (HTML, CSS, JavaScript).
- URL-osoitetta hallinta: Reititin kuuntelee URL-osoitteen muutoksia ja päivittää näkymän nykyisen reitin mukaan.
- Dynaaminen komponenttien renderöinti: Reititin yhdistää URL-osoitteen komponenttiin ja renderöi sen dynaamisesti ilman sivun päivittämistä.
- Tilann säilyttäminen: Sovelluksen tila säilyy navigoinnin aikana, mikä varmistaa sujuvan siirtymisen näkymien välillä.
Tämä suunnittelu mahdollistaa syvän linkityksen ja URL-pohjaisen tilanhallinnan, mikä antaa käyttäjille mahdollisuuden kirjanmerkitä ja jakaa tiettyjä sivuja sovelluksessa samalla, kun he nauttivat sujuvasta, yksisivuisesta kokemuksesta.
Ydinperiaatteet
- URL-pohjainen komponenttien kartoitus: webforJ:ssä reitit on suoraan sidottu käyttöliittymän komponentteihin. URL-malli on kartoitettu tiettyyn komponenttiin, joka määrää, mitä sisältöä näytetään nykyisen polun perusteella.
- Deklaratiivinen reititys: Reitit määritellään deklaratiivisesti, tyypillisesti käyttämällä annotaatioita. Jokainen reitti vastaa komponenttia, joka renderöidään, kun reitti täsmää.
- Dynaaminen navigointi: Reititin vaihtaa dynaamisesti näkymien välillä ilman, että sivua ladataan uudelleen, pitäen sovelluksen responsiivisena ja nopeana.
Esimerkki asiakaspään reitityksestä webforJ:ssä
Tässä on esimerkki reitin määrittämisestä UserProfileView
-komponentille näyttämään käyttäjän tiedot URL-osoitteen id
-parametrin perusteella:
@Route(value = "user/:id")
public class UserProfileView extends Composite<Div> implements DidEnterObserver {
@Override
public void onDidEnter(DidEnterEvent event, ParametersBag parameters) {
String id = parameters.getAlpha("id").orElse("");
refreshProfile(id);
}
}
Tässä asetuksessa:
- Navigointi osoitteeseen
/user/john
renderöisiUserProfileView
-komponentin. id
-parametri kaappaisijohn
:in URL-osoitteesta ja mahdollistaisi sen käytön komponentissa käyttäjän tietojen hakemiseksi ja näyttämiseksi.
Aiheet
📄️ Routable Apps
Routing webforJlle oikeuden hallita selainhistoriaa, reagoida navigointitapahtumiin ja renderöidä sovelluksen komponentit URL-osoitteen perusteella.
📄️ Defining Routes
Reittien määrittäminen on olennaista URL-osoitteiden yhdistämiseksi tiettyihin komponentteihin. Tämä mahdollistaa sen hallitsemisen, kuinka eri osat käyttöliittymästäsi renderöidään URL-rakenteen perusteella. Kehys käyttää @Route-annotaatiota tehdäksesi tämän prosessin deklaratiiviseksi ja suoraviivaiseksi, mikä vähentää manuaalisen konfiguroinnin tarvetta.
📄️ Route Navigation
In webforJ, reitittäminen eri reittien välillä on keskeinen mekanismi näkymien ja komponenttien vaihtamiseen käyttäjän toimien tai URL-muutosten perusteella. Navigointi mahdollistaa käyttäjien siirtymisen saumattomasti sovelluksen eri osien välillä ilman sivun päivittämistä. Tämä asiakaspuolen navigointi pitää sovelluksen responsiivisena ja sujuvana samalla kun se säilyttää sovelluksen tilan.
📄️ Route Patterns
Reittimallit käytetään määrittämään, miten URL-osoitteet vastaavat tiettyihin näkymiin, mukaan lukien dynaamiset ja valinnaiset segmentit, säännönmukaiset lausekkeet ja jokerimerkit. Reittimallit mahdollistavat kehyksen URL-osoitteiden täsmäyttämisen, parametrien erottamisen ja URL-osoitteiden dynaamisen luomisen. Ne näyttelevät kriittistä roolia sovelluksen navigoinnin ja komponenttien renderöinnin jäsentelyssä selaimen sijainnin perusteella.
📄️ Query Parameters
Kyselyparametrit mahdollistavat lisätietojen siirtämisen URL-osoitteiden kautta, käyttämällä muotoa ?key1=value1&key2=value2. Kun reittiparametreja käytetään vaadittavan tiedon siirtämiseen URL-polussa, kyselyparametrit tarjoavat joustavan mekanismin vapaaehtoisten tai lisätietojen siirtämiseen. Ne ovat erityisen hyödyllisiä sisällön suodattamisessa, lajittelussa tai käsitellessä useita arvoja samalla avaimella.
📄️ State Management
Luodaan saumatonta, dynaamista käyttäjäkokemusta vaativat usein sen, että verkkosovelluksen tila heijastuu URL-osoitteeseen ja säilyy selainviestinnän aikana. Voit saavuttaa tämän lataamatta sivua uudelleen hyödyntämällä URL-parametrien päivityksiä ja selainhistorian hallintaa. Tämä varmistaa, että käyttäjät voivat jakaa, merkitä kirjanmerkkeihin tai palata tiettyihin näkymiin sovelluksen ollessa täysin tietoinen heidän aiemmista vuorovaikutuksistaan.
🗃️ Navigointielämäkaari
3 kohdetta
🗃️ Reitit Hierarkia
3 kohdetta
📄️ Navigational Frame Titles
In webforJ, kaikki reitit renderöidään Frame-ydinrakenteessa, joka toimii ylimpänä säilönä, joka vastaa nykyisen reitin sisällön näyttämisestä. Kun käyttäjät navigoivat eri reittien välillä, Frame-otsikko päivitetään dynaamisesti heijastamaan aktiivista näkymää, mikä auttaa tarjoamaan selkeän kontekstin käyttäjän nykyisestä sijainnista sovelluksessa.
📄️ Routes Registration
Rekisteröinnin lisäksi reittiä @Route -annotaatioiden avulla on mahdollista rekisteröidä, päivittää tai poistaa reittejä dynaamisesti suoritusajon aikana sovelluksen logiikan, käyttäjäroolien tai muiden ehtojen perusteella. Tämä joustavuus mahdollistaa navigoinnin hallinnan dynaamisemmin, sen sijaan että reitit määritellään staattisesti käännösaikana.