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/johnrenderö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 in webforJ on valinnainen työkalu. Kehittäjät voivat valita webforJ-reititysratkaisun tai perinteisen mallin, jossa käytetään Frame-manipulaatiota ilman syvää linkittämistä. Reitityksen mahdollistamiseksi @Routify-annotaatio on sovellettava App-luokan tason. Tämä antaa webforJ:lle valtuudet hallita selainhistorian, 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
webforJ:ssä reitillä navigointi on perustavanlaatuinen mekanismi, joka mahdollistaa näkymien ja komponenttien vaihtamisen käyttäjän toimien tai URL-muutosten perusteella. Navigointi mahdollistaa käyttäjien siirtymisen saumattomasti sovelluksen eri osien välillä sivua päivittämättä. Tämä asiakaspuolen navigointi pitää sovelluksen reagoivana ja sujuvana säilyttäen 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
Luodakseen saumattomia, dynaamisia käyttäjäkokemuksia, vaaditaan usein, että verkkosovelluksen tila heijastuu URL-osoitteessa ja säilyy selaimen navigointitapahtumien aikana. Voit saavuttaa tämän ilman sivun lataamista hyödyntämällä URL-parametrien päivityksiä ja selaushistorian tilan hallintaa. Tämä varmistaa, että käyttäjät voivat jakaa, lisätä kirjanmerkkejä tai palata tiettyihin näkymiin, joista sovellus on 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-elementin sisällä, joka toimii ylätason säiliönä vastaavan reitin sisällön näyttämiseksi. Kun käyttäjät navigoivat eri reittien välillä, Frame-nimi päivitetään dynaamisesti heijastamaan aktiivista näkymää, mikä auttaa tarjoamaan selkeän kontekstin käyttäjän nykyiselle sijainnille sovelluksessa.
📄️ Routes Registration
Lisäksi reittien rekisteröimisestä @Route-annotaatioiden avulla on mahdollista rekisteröidä, päivittää tai poistaa reittejä dynaamisesti ajoitusvaiheessa sovelluksen logiikan, käyttäjäroolien tai muiden ehtojen perusteella. Tämä joustavuus mahdollistaa navigoinnin hallitsemisen dynaamisemmin, sen sijaan, että reitit määriteltäisiin staattisesti käännösvaiheessa.
📄️ Route Transitions
Reittisiirtymät tarjoavat deklaratiivisia animoituja siirtymiä, kun navigoidaan reittien välillä. Perustuu View Transitions API:in, lisäämällä @RouteTransition-annotaatio reittikomponentteihisi, reititin voi automaattisesti käsitellä animaation elinkaaren navigoinnin aikana.