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

PluginApp

interfaz Desde 1.2.0

Aplicación que recibe un plugin de app/plugins (o de un módulo) al arrancar. En el navegador hay una por pestaña, antes de la hidratación; en el servidor, una por petición de página, antes del render.

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

Código fuente src/app/definitions/define-plugin.ts:77

Declaración #

ts
interface PluginApp {
	readonly side: 'client' | 'server'
	readonly route: RouteState
	readonly request: Request | undefined
	provide<T>(key: ContextKey<T>, value: T): void
	addHead(input: () => HeadInput): void
	beforeNavigate(handler: (url: URL, routeId: string | null) => boolean | void | Promise<boolean | void>): void
	resolveLink(resolver: LinkResolver): void
	onError(handler: PluginErrorHandler): void
}

Ejemplo #

ts
// app/plugins/analytics.client.ts
import { definePlugin } from "@meekojs/meeko/framework";

export default definePlugin((app) => {
  console.log("arranca en", app.side, "con la ruta", app.route.path.value);
  app.onError((error) => navigator.sendBeacon("/api/errors", String(error)));
});

Miembros #

side #

propiedad sólo lectura

readonly side: 'client' | 'server'

"client" en el navegador y "server" durante el render de una petición.

route #

propiedad sólo lectura

readonly route: RouteState

Ruta de la aplicación, como la de useRoute(). En el servidor es la de la petición; en el navegador sigue a la ruta confirmada, así que un effect que la lee se repite al navegar.

request #

propiedad sólo lectura

readonly request: Request | undefined

Petición HTTP que se renderiza; undefined en el navegador.

provide #

método

provide<T>(key: ContextKey<T>, value: T): void

Publica un valor para todos los componentes de la aplicación, que lo leen con inject(key). En el servidor el valor es de esta petición; no comparta en él estado mutable entre peticiones.

addHead #

método

addHead(input: () => HeadInput): void

Adds document attributes and tags to every render root of this plugin.

beforeNavigate #

método

beforeNavigate(handler: (url: URL, routeId: string | null) => boolean | void | Promise<boolean | void>): void

Runs before a client navigation; return false after taking over navigation.

método

resolveLink(resolver: LinkResolver): void

Registra un resolvedor del href de cada <MeekoLink> de la aplicación (desde 1.8.0), por ejemplo para añadir el prefijo del idioma. Varios resolvedores se encadenan en el orden de registro: cada uno recibe el href del anterior. Un enlace con bind:resolve="false" no pasa por ellos. Véase LinkResolver.

onError #

método

onError(handler: PluginErrorHandler): void

Registra un observador de errores de la aplicación. En el navegador recibe lo mismo que mountClientApp({ onError }); en el servidor, los fallos del render de esta petición, además del onError de server/runtime.ts.

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/definitions/define-plugin.ts