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.

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";

Source code 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[]
}

Example #

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 since 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 since 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 since 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 since 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.

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/runtime/client.ts