Routable Apps
El enrutamiento en webforJ es una herramienta opcional. Los desarrolladores pueden elegir entre la solución de enrutamiento de webforJ o un modelo tradicional con manipulación de Frame
y sin enlaces profundos. Para habilitar el enrutamiento, se debe aplicar la anotación @Routify
a nivel de la clase que implementa App
. Esto otorga a webforJ la autoridad para gestionar el historial del navegador, responder a eventos de navegación y renderizar los componentes de la aplicación según la URL.
Para obtener más información acerca de la construcción de interfaces de usuario utilizando frames, componentes integrados y personalizados, visita la sección Building UIs.
Propósito de la Anotación @Routify
@Routify
permite que el marco registre automáticamente rutas, gestione la visibilidad de los frames y defina comportamientos de enrutamiento como la depuración y la inicialización de frames, permitiendo un enrutamiento dinámico y flexible en la aplicación.
Uso de @Routify
La anotación @Routify
se aplica a nivel de clase de la clase principal de la aplicación. Especifica el conjunto de paquetes que se deben escanear en busca de rutas y maneja otras configuraciones relacionadas con el enrutamiento, como la inicialización de frames y la gestión de visibilidad.
Aquí hay un ejemplo básico:
@Routify(
packages = {"com.myapp.views"},
defaultFrameName = "MainFrame",
initializeFrame = true,
manageFramesVisibility = false,
debug = true
)
public class MyApp extends App {
@Override
public void run() {
// La lógica de la aplicación va aquí
}
}
La anotación @Routify
viene con configuraciones predeterminadas razonables. Asume que el paquete actual donde se define la aplicación, junto con todos sus subpaquetes, deben ser escaneados en busca de rutas. Además, asume que la aplicación gestiona solo un frame por defecto. Si tu aplicación sigue esta estructura, no es necesario proporcionar configuraciones personalizadas a la anotación.
Elementos Clave de @Routify
1. packages
El elemento packages
define qué paquetes deben ser escaneados en busca de definiciones de rutas. Permite el descubrimiento automático de rutas sin necesidad de registro manual, simplificando el proceso de expansión del sistema de enrutamiento de la aplicación.
@Routify(packages = {"com.myapp.views"})
Si no se especifican paquetes, se utiliza el paquete predeterminado de la aplicación.
2. defaultFrameName
Este elemento especifica el nombre del frame predeterminado que la aplicación inicializa. Los frames representan contenedores de UI de nivel superior, y esta configuración controla cómo se nombra y gestiona el primer frame.
@Routify(defaultFrameName = "MainFrame")
Por defecto, si no se proporciona explícitamente, el valor se establece en Routify.DEFAULT_FRAME_NAME
.
3. initializeFrame
El flag initializeFrame
determina si el marco debe inicializar automáticamente el primer frame cuando la aplicación se inicia. Establecer esto en true
simplifica la configuración inicial del frame.
@Routify(initializeFrame = true)
4. manageFramesVisibility
Este elemento controla si el marco debe alternar automáticamente la visibilidad de los frames durante la navegación. Cuando está habilitado, la ruta coincidente muestra automáticamente el frame correspondiente mientras oculta otros, asegurando una interfaz limpia y enfocada. Esta configuración solo es relevante cuando tu aplicación gestiona múltiples frames.
@Routify(manageFramesVisibility = true)
5. debug
El flag debug
habilita o deshabilita el modo de depuración de enrutamiento. Cuando está habilitado, la información y las acciones de enrutamiento se registran en la consola para facilitar la depuración durante el desarrollo.
@Routify(debug = true)
Si el modo de depuración del enrutador está configurado en true
pero el modo de depuración de webforJ está configurado en false
, no se mostrará información de depuración en la consola.