# Broute (Component) `Bit.Brouter.Broute` - inherits `ComponentBase` - implements `IComponent`, `IDisposable`, `IHandleAfterRender`, `IHandleEvent` Declares a single route inside a Broute.Brouter. ## Parameter - **ChildContent** : `RenderFragment` - Child routes (used for nesting). - **Component** : `Type` - The component type to render when this route matches. - **Content** : `RenderFragment` - A render fragment to render when this route matches. The argument carries the route parameters. - **ErrorContent** : `RenderFragment` - Error UI for this route. When a commit-phase failure occurs (typically a Broute.Loader in the matched chain throwing), the nearest ErrorContent - walking from the failed route up through its ancestors - renders in place of the routed content, while ancestor layouts above the boundary keep rendering normally. The fragment receives a BrouterErrorContext with the exception, the location, and a RetryAsync() that re-runs the navigation. When no route in the chain declares one, the failure bubbles to Brouter.ErrorContent. The global IBrouter.OnError hook fires either way. - **Group** : `bool` = `false` - Marks this as a pathless grouping route: it contributes no URL segments and never matches by itself, existing purely to attach shared behavior - a Broute.Guard, Broute.LeaveGuard, Broute.Loader, Broute.ErrorContent or a layout Broute.Content (with a BrouterOutlet) - to the routes declared in its Broute.ChildContent. Children inherit the surrounding path as if the group weren't there. Mirrors SvelteKit's (group) directories and TanStack Router's pathless layout routes. A group must not declare a Broute.Path. - **Guard** : `Func` - Async guard. Use ctx.Cancel() or ctx.Redirect("/login") to deny. Inspired by Vue Router's beforeEnter and Angular's CanActivate. - **KeepAlive** : `bool` = `false` - When true, this route's rendered content is kept mounted (hidden) after the user navigates away, so returning to it restores the exact component state - scroll inside widgets, form input, expanded panels - instead of recreating the component. The Angular RouteReuseStrategy / Vue KeepAlive idea, scoped per route. The preserved content lives inside a