Aller au contenu
Vincle

Chargement…

    renderToFlowEvents

    Expose les événements sémantiques du rendu, avant leur sérialisation par un adaptateur.

    Signature#

    La fonction retourne un ReadableStream<FlowEvent> avec les mêmes arguments que renderToStream. Les événements arrivent dans l’ordre de production. Vous contrôlez leur transport et leur représentation.

    import { renderToFlowEvents } from "@vincle/flow";
    function renderToFlowEvents(
    node: () => JSX.Element,
    adapter: StreamingAdapter,
    opts?: FlowOptions & { mode?: "full" | "fragment" },
    ): ReadableStream<FlowEvent>;

    Événements#

    Les événements sont shell avec html, fragment avec id, html et merge, puis close avec html. Ils décrivent le document et ses mises à jour.

    Consommer les événements#

    Parcourez les événements avec for await. Les demandes du consommateur déterminent la progression ; une annulation libère les fragments encore en cours.

    import { renderToFlowEvents } from "@vincle/flow";
    import { NativeAdapter } from "@vincle/flow/adapters";
    const stream = renderToFlowEvents(() => <Page />, NativeAdapter);
    for await (const ev of stream) {
    switch (ev.type) {
    case "shell":
    // ev.html: the full shell, before closing tags
    break;
    case "fragment":
    // ev.id, ev.html, ev.merge: patch into the shell yourself
    break;
    case "close":
    // ev.html: trailing </body></html>
    break;
    }
    }