ComponentModule
interfaz
Contrato de un módulo de componente compilado para componerlo sin elemento envolvente. A
diferencia de Component, renderWithState es opcional: sirve para usos de bajo nivel que
renderizan sin transferir estado.
ts
import type { ComponentModule } from "@meekojs/meeko";Source code src/app/runtime/renderer.ts:61
Declaración #
ts
interface ComponentModule<Props extends object> {
readonly renderToString: (props: Props, state?: Record<string, unknown>) => string
readonly renderWithState?: (props: Props) => { html: string; state: Record<string, unknown> }
readonly hydrateScope: (scope: DomScope, props: Props, state?: Record<string, unknown>) => ComponentRelease
}Type parameters #
-
Propsextends object Props del componente.
Example #
ts
import type { ComponentModule } from "@meekojs/meeko";
function renderAll<P extends object>(module: ComponentModule<P>, list: readonly P[]): string {
return list.map((props) => module.renderToString(props)).join("");
}Propiedades #
renderToString
#
readonly renderToString: (props: Props, state?: Record<string, unknown>) => stringRenderiza el HTML, opcionalmente desde un estado capturado.
renderWithState
#
readonly renderWithState?: (props: Props) => { html: string; state: Record<string, unknown> }Renderiza el HTML y captura el estado de sus señales.
hydrateScope
#
readonly hydrateScope: (scope: DomScope, props: Props, state?: Record<string, unknown>) => ComponentReleaseHidrata el HTML de scope; devuelve la función de liberación.