Saltar al contenido
Meeko
Escribe para buscar en las guías y en la referencia de la API. Ábrela desde cualquier página con / o Ctrl K; muévete con las flechas y entra con Intro.
Empezar

Contenidos

En esta página

ClientAppOptions

interfaz

Opciones de mountClientApp. La entrada cliente que genera Meeko las rellena a partir de los módulos virtuales del plugin de Vite.

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

Código fuente src/app/runtime/client.ts:129

Declaración #

ts
interface ClientAppOptions {
	readonly viewTransitions?: boolean
	readonly routes: readonly RouteRecord[]
	readonly errorPage?: ErrorPageRecord | undefined
	readonly root: Element
	readonly payload: string | unknown
	readonly loadPage: (file: string) => Promise<ClientComponent>
	readonly loadRoute?: (file: string) => Promise<ClientRoute>
	readonly loadClientRoute?: (file: string) => Promise<ClientRoute>
	readonly loadMiddleware?: () => Promise<readonly RouteMiddleware[]>
	readonly loadNamedMiddleware?: (file: string) => Promise<RouteMiddleware>
	readonly serverData?: boolean | 'static'
	readonly fetch?: typeof fetch
	readonly onNavigationError?: (error: unknown) => void
	readonly onError?: ComponentErrorHandler
	readonly browser?: Window
	readonly document?: DocumentConfig | undefined
	readonly plugins?: readonly PluginRegistration[]
}

Ejemplo #

ts
import { mountClientApp } from "@meekojs/meeko/framework";
import type { ClientAppOptions, ClientComponent } from "@meekojs/meeko/framework";

const options: ClientAppOptions = {
  root: document.getElementById("app")!,
  payload: document.getElementById("meeko-payload")?.textContent,
  routes,
  serverData: true,
  loadPage: async (file) => await pages[file]!() as ClientComponent,
  onError: (error, source) => console.error(source, error),
};
const app = await mountClientApp(options);

Propiedades #

viewTransitions #

propiedad sólo lectura opcional

readonly viewTransitions?: boolean

View Transitions nativas al confirmar una navegación; false por defecto. No anima la hidratación inicial.

routes #

propiedad sólo lectura

readonly routes: readonly RouteRecord[]

Manifiesto de rutas, el mismo que usa el servidor.

errorPage #

propiedad sólo lectura opcional desde 1.1.0

readonly errorPage?: ErrorPageRecord | undefined

Página de error de la aplicación (app/error.meeko) y sus layouts raíz. Hidrata una página 404 del servidor y respalda las rutas render: "client" sin +error.meeko.

root #

propiedad sólo lectura

readonly root: Element

Elemento raíz que contiene el HTML SSR (#app).

payload #

propiedad sólo lectura

readonly payload: string | unknown

Payload de hidratación de #meeko-payload, como texto JSON o ya analizado.

loadPage #

propiedad sólo lectura

readonly loadPage: (file: string) => Promise<ClientComponent>

Carga el módulo compilado de una página o un layout por su archivo.

loadRoute #

propiedad sólo lectura opcional

readonly loadRoute?: (file: string) => Promise<ClientRoute>

Carga las opciones de ruta públicas de un sidecar para ejecutar su loader en el navegador.

loadClientRoute #

propiedad sólo lectura opcional

readonly loadClientRoute?: (file: string) => Promise<ClientRoute>

Carga el sidecar de navegador de una ruta render: "client". Estas rutas siempre toman sus datos de este loader, también con serverData; por defecto, loadRoute.

loadMiddleware #

propiedad sólo lectura opcional

readonly loadMiddleware?: () => Promise<readonly RouteMiddleware[]>

Carga el middleware de ruta global, que se ejecuta como en SSR antes de pedir cada navegación.

loadNamedMiddleware #

propiedad sólo lectura opcional desde 1.6.0

readonly loadNamedMiddleware?: (file: string) => Promise<RouteMiddleware>

Carga un middleware con nombre de RouteRecord.middleware por su archivo, la primera vez que se navega a una ruta que lo declara. Se ejecuta después de los globales, como en SSR; una ruta con middleware con nombre y sin este cargador falla en lugar de saltárselo.

serverData #

propiedad sólo lectura opcional

readonly serverData?: boolean | 'static'

Pide al servidor los datos públicos del loader al navegar. Con true, la misma URL con Accept: application/meeko+json; desde 1.3, con "static", el archivo <ruta>/index.meeko.json que escribe el adaptador static, para un hosting estático que no negocia Accept.

fetch #

propiedad sólo lectura opcional

readonly fetch?: typeof fetch

Implementación de fetch para las navegaciones; por defecto, la global.

onNavigationError #

propiedad sólo lectura opcional

readonly onNavigationError?: (error: unknown) => void

Observa los fallos de navegación por clic o historial; tiene prioridad sobre onError.

onError #

propiedad sólo lectura opcional

readonly onError?: ComponentErrorHandler

Observa los fallos de esta aplicación en el navegador: navegación, clientes Socket y eventos, efectos o limpiezas de componentes sin un provideErrorHandler más cercano. Desde 1.3, también las excepciones no capturadas ("uncaught") y las promesas rechazadas sin manejar ("rejection") de la página mientras la aplicación está montada; el navegador ya no las repite en la consola. Sin onError ni app.onError, las recibe el primer provideErrorHandler activo; sin ninguno, el navegador las muestra como siempre.

browser #

propiedad sólo lectura opcional

readonly browser?: Window

Ventana del navegador; por defecto, window.

document #

propiedad sólo lectura opcional desde 1.2.0

readonly document?: DocumentConfig | undefined

document de meeko.config.ts, el mismo que renderiza el servidor: la entrada cliente que genera Meeko lo toma de virtual:meeko-manifest/client. useHead y la navegación lo usan para aplicar titleTemplate, mostrar su title (sin plantilla) en las páginas sin título y restaurar sus etiquetas, con la misma regla que el servidor.

plugins #

propiedad sólo lectura opcional desde 1.2.0

readonly plugins?: readonly PluginRegistration[]

Plugins de aplicación (definePlugin), que se ejecutan en orden antes de la hidratación. Sus valores de provide llegan a todos los componentes, y sus observadores de onError reciben lo mismo que onError. La entrada que genera Meeko pasa los de app/plugins y los módulos.

Véase también #

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres

Editar en GitHub: packages/meeko/src/app/runtime/client.ts