Skip to content
Meeko
Type to search the guides and the API reference. Open it from any page with / or Ctrl K; move with the arrow keys and open a result with Enter.
Get started

Contents

On this page

Not translated yet

This page has not been translated into English yet, so it is shown in Spanish.

ClientPageDefinition

interfaz

Opciones de ruta de una página que se renderiza en el navegador (render: "client"). Su bloque o sidecar entra en el bundle del cliente, así que no puede importar módulos de servidor; los datos deben llegar por endpoints de API o RPC protegidos.

ts
import type { ClientPageDefinition } from "@meekojs/meeko/framework";

Source code src/app/definitions/define-page.ts:437

Declaración #

ts
interface ClientPageDefinition<P extends PageSchema | undefined, S extends PageSchema | undefined, D> {
	readonly params?: P
	readonly search?: S
	readonly render: 'client'
	readonly prerenderEntries?: never
	readonly sitemapEntries?: never
	readonly load?: (args: ClientPageLoadContext<P, S>) => Promise<D> | D
	readonly head?: (args: ClientPageLoadContext<P, S> & { data: D }) => PageHead
	readonly layout?: unknown
	readonly layoutProps?: unknown
	readonly middleware?: readonly ClientRouteMiddlewareName[] | false
	readonly cache?: never
}

Type parameters #

P extends PageSchema | undefined

Schema de params, o undefined.

S extends PageSchema | undefined

Schema de search, o undefined.

D

Datos que devuelve load.

Example #

ts
import { definePage } from "@meekojs/meeko/framework";

export const route = definePage({
  render: "client",
  load: async ({ signal }) => api.notes.list({ signal }),
  head: ({ data }) => ({ title: `${data.length} notas` }),
});

Propiedades #

params #

propiedad sólo lectura opcional

readonly params?: P

Schema de los parámetros de la ruta. El servidor los valida antes de enviar los layouts; una entrada inválida responde 400.

propiedad sólo lectura opcional

readonly search?: S

Schema de los parámetros de búsqueda, que se validan como params.

render #

propiedad sólo lectura

readonly render: 'client'

El servidor sólo renderiza los layouts y el navegador ejecuta load, head y la página. El HTML inicial no lleva los datos: es para vistas sin requisitos de SEO.

prerenderEntries #

propiedad sólo lectura opcional

readonly prerenderEntries?: never

Una página "client" no se puede prerenderizar: declararlo es un error de tipos y detiene meeko build.

sitemapEntries #

propiedad sólo lectura opcional since 1.7.0

readonly sitemapEntries?: never

Una página "client" no declara URL del sitemap: sus opciones llegan al navegador. Declararlo es un error de tipos y detiene meeko build; una ruta sin parámetros ya está en el sitemap.

load #

propiedad sólo lectura opcional

readonly load?: (args: ClientPageLoadContext<P, S>) => Promise<D> | D

Loader del navegador, con ClientPageLoadContext (sin request ni context): pide los datos a la API o al RPC. Lo que devuelve llega a la página como props.data.

propiedad sólo lectura opcional

readonly head?: (args: ClientPageLoadContext<P, S> & { data: D }) => PageHead

Se ejecuta en el navegador después de load; su head se aplica al confirmar la página.

layout #

propiedad sólo lectura opcional since 1.5.0

readonly layout?: unknown

Layout con nombre de la página, como en PageDefinition.layout.

layoutProps #

propiedad sólo lectura opcional since 1.5.0

readonly layoutProps?: unknown

Props para el layout: un objeto, que el servidor ya aplica al HTML de los layouts, o una función que se ejecuta en el navegador después de load.

middleware #

propiedad sólo lectura opcional since 1.6.0

readonly middleware?: readonly ClientRouteMiddlewareName[] | false

Middleware con nombre de la página, como en PageDefinition.middleware, sin los de servidor (*.server.ts): una página render: "client" no pide sus datos al servidor al navegar.

cache #

propiedad sólo lectura opcional since 1.7.0

readonly cache?: never

Una página "client" no tiene caché de servidor: su HTML sólo lleva los layouts, y sus datos llegan por API o RPC. Declararla es un error de tipos y falla al cargar la ruta.

See also #

Was this page helpful?

Add a comment

It is sent when you choose “Yes” or “No”. Only the page, your answer and the comment are stored: no cookies and no personal data.

0 of 2000 characters

Edit on GitHub: packages/meeko/src/app/definitions/define-page.ts