Skip to content

lit-ui-router / LitStateDeclaration

Interface: LitStateDeclaration<T>

Defined in: packages/lit-ui-router/src/interface.ts:372

State declaration interface for Lit applications.

Extends the core StateDeclaration with Lit-specific component support. The component property accepts template functions, LitElement classes, or both.

Examples

ts
{ name: 'home', url: '/', component: () => html`<h1>Home</h1>` }
ts
{
  name: 'user',
  url: '/user/:id',
  component: (props) => html`<h1>User ${props?.transition?.params().id}</h1>`
}
ts
{
  name: 'users',
  url: '/users',
  component: (props) => html`
    <ul>${props?.resolves?.users?.map(u => html`<li>${u.name}</li>`)}</ul>
  `,
  resolve: [{ token: 'users', resolveFn: () => fetch('/api/users').then(r => r.json()) }]
}
ts
{ name: 'dashboard', url: '/dashboard', component: DashboardElement }
ts
const states: LitStateDeclaration[] = [
  { name: 'app', abstract: true, component: AppShell },
  { name: 'app.home', url: '/home', component: () => html`<h1>Home</h1>` },
  { name: 'app.users', url: '/users', component: UsersView },
];

See

Extends

Type Parameters

Type ParameterDefault type
T extends DefaultResolvesTypeDefaultResolvesType

Properties

PropertyTypeDescriptionDefined in
component?LitViewDeclaration<T>The Lit component to render for this statepackages/lit-ui-router/src/interface.ts:376