RouteDefinition.defer constructor
Define a route from path
that uses loader
to resolve a component.
Can be used to prefetch/initialize, such as loading a deferred library:
import 'contact_view.template.dart' deferred as contact_view;
Future<ComponentFactory> loadContentView() async {
await contact_view.loadLibrary();
return contact_view.ContactViewComponentNgFactory;
}
Then create a RouteDefinition that uses loadContentView
:
new RouteDefinition.defer('contact', loadContactView);
An optional prefetcher
can be specified to prefetch additional
resources. The prefetcher
is passed a partial RouterState that
represents the match so far from the root matching route. It's possible
that the prefetcher
will be invoked during route resolution, even if its
route doesn't fully match, or is prevented from activating. The
prefetcher
is run concurrently with loader
. If the prefetcher
returns a Future, its result is awaited before the route is initialized.
If the result of the prefetcher
doesn't need to be awaited before
activating the route, it should return void.
At most one route may be set to useAsDefault
, which means it will be
automatically inferred to be in use if there are no matching routes for a
given outlet.
Implementation
factory RouteDefinition.defer({
String? path,
required LoadComponentAsync loader,
FutureOr<void> Function(RouterState)? prefetcher,
bool? useAsDefault,
dynamic additionalData,
RoutePath? routePath,
}) = DeferredRouteDefinition._;