Ga naar hoofdinhoud

Routable Apps

Open in ChatGPT

Routing in webforJ is een optioneel hulpmiddel. Ontwikkelaars kunnen kiezen tussen de webforJ routingoplossing of een traditioneel model met Frame manipulatie en zonder deep linking. Om routing in te schakelen, moet de @Routify annotatie worden toegepast op het niveau van een klasse die App implementeert. Hierdoor krijgt webforJ de bevoegdheid om de browsergeschiedenis te beheren, te reageren op navigatie-evenementen en de componenten van de app weer te geven op basis van de URL.

informatie

Om meer te leren over het bouwen van UI's met behulp van frames, ingebouwde en aangepaste componenten, bezoek de sectie Building UIs.

Doel van de @Routify Annotatie

@Routify stelt het framework in staat om automatisch routes te registreren, de zichtbaarheid van frames te beheren en routinggedragingen zoals foutopsporing en frame-initialisatie te definiëren, waardoor dynamische, flexibele routing in de app mogelijk wordt.

Gebruik van @Routify

De @Routify annotatie wordt toegepast op het klasseniveau van de hoofdapplicatieklasse. Het specificeert de set van pakketten die gescand moeten worden voor routes en beheert andere routinggerelateerde instellingen zoals frame-initialisatie en zichtbaarheid.

Hier is een basisvoorbeeld:

@Routify(
packages = {"com.myapp.views"},
defaultFrameName = "MainFrame",
initializeFrame = true,
manageFramesVisibility = false,
debug = true
)
public class MyApp extends App {

@Override
public void run() {
// Applicatielogica gaat hier
}
}
Standaardconfiguraties van Routify

De @Routify annotatie komt met redelijke standaardconfiguraties. Het gaat ervan uit dat het huidige pakket waarin de app is gedefinieerd, samen met al zijn subpakketten, moet worden gescand voor routes. Daarnaast gaat het ervan uit dat de app standaard maar één frame beheert. Als je app deze structuur volgt, is er geen behoefte om aangepaste configuraties aan de annotatie te geven.

Belangrijkste elementen van @Routify

1. packages

Het packages element definieert welke pakketten moeten worden gescand voor routedefinities. Het stelt automatische ontdekking van routes mogelijk zonder handmatige registratie, waardoor het proces van het uitbreiden van het routing-systeem van de app wordt vereenvoudigd.

@Routify(packages = {"com.myapp.views"})

Als er geen pakketten zijn opgegeven, wordt het standaardpakket van de app gebruikt.

2. defaultFrameName

Dit element specificeert de naam van het standaardframe dat de app initialiseert. Frames vertegenwoordigen top-level UI-containers, en deze instelling controleert hoe het eerste frame wordt genoemd en beheerd.

@Routify(defaultFrameName = "MainFrame")

Standaard, als dit niet expliciet is opgegeven, wordt de waarde ingesteld op Routify.DEFAULT_FRAME_NAME.

3. initializeFrame

De initializeFrame vlag bepaalt of het framework automatisch het eerste frame moet initialiseren wanneer de app start. Dit op true instellen vereenvoudigt de initiële frame-instelling.

@Routify(initializeFrame = true)

4. manageFramesVisibility

Dit element controleert of het framework automatisch de zichtbaarheid van frames tijdens navigatie moet wisselen. Wanneer dit is ingeschakeld, toont de bijbehorende route automatisch het overeenkomstige frame terwijl andere worden verborgen, wat zorgt voor een schone en gefocuste UI. Deze instelling is alleen relevant wanneer je app meerdere frames beheert.

@Routify(manageFramesVisibility = true)

5. debug

De debug vlag schakelt de routingdebug-modus in of uit. Wanneer ingeschakeld, worden routinginformatie en -acties gelogd naar de console voor gemakkelijker foutopsporing tijdens ontwikkeling.

@Routify(debug = true)
Router Debugmodus en webforJ Debugmodus

Als de routerdebugmodus is ingesteld op true, maar de webforJ-debugmodus is ingesteld op false, worden er geen foutopsporingsinformatie in de console weergegeven.