Routable Apps
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. Dit geeft webforJ de autoriteit om de browsergeschiedenis te beheren, te reageren op navigatie-evenementen en de componenten van de app weer te geven op basis van de URL.
Voor meer informatie over het bouwen van UI's met behulp van frames, ingebouwde en aangepaste componenten, bezoek Building UIs.
Doel van de @Routify Annotatie
@Routify stelt het framework in staat om routes automatisch te registreren, de zichtbaarheid van frames te beheren en routinggedragingen zoals debugging en frame-initialisatie te definiëren, waardoor dynamische, flexibele routing in de app mogelijk is.
Gebruik van @Routify
De @Routify annotatie wordt toegepast op het klasseniveau van de hoofd-appklasse. Het specificeert de set packages 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 komt hier
}
}
De @Routify annotatie komt met redelijke standaardconfiguraties. Het gaat ervan uit dat het huidige package waarin de app is gedefinieerd, samen met al zijn subpackages, moet worden gescand voor routes. Daarnaast gaat het ervan uit dat de app standaard slechts één frame beheert. Als je app deze structuur volgt, is er geen behoefte om aangepaste configuraties aan de annotatie te geven.
Sleutelelementen van @Routify
1. packages
Het packages element definieert welke packages moeten worden gescand voor route-definities. Het stelt automatische ontdekking van routes mogelijk zonder handmatige registratie, waardoor het proces van het uitbreiden van het routing-systeem van de app gestroomlijnd wordt.
@Routify(packages = {"com.myapp.views"})
Als er geen packages zijn opgegeven, wordt het standaard package van de app gebruikt.
2. defaultFrameName
Dit element specificeert de naam van het standaard frame dat de app initialiseert. Frames vertegenwoordigen top-level UI-containers, en deze instelling bepaalt hoe het eerste frame wordt genoemd en beheerd.
@Routify(defaultFrameName = "MainFrame")
Standaard, als niet expliciet opgegeven, is 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 wordt gestart. Dit op true instellen vereenvoudigt de initiële frame-instelling.
@Routify(initializeFrame = true)
4. manageFramesVisibility
Dit element beheert of het framework automatisch de zichtbaarheid van frames tijdens navigatie moet wisselen. Wanneer ingeschakeld, toont de overeenkomende route automatisch het bijbehorende 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 routing debugmodus in of uit. Wanneer ingeschakeld, worden routinginformatie en acties naar de console gelogd voor eenvoudigere debugging tijdens de ontwikkeling.
@Routify(debug = true)
Als de router debugmodus is ingesteld op true, maar de webforJ debugmodus is ingesteld op false, worden er geen debuginformatie in de console weergegeven.