Renderizado del Lado del Servidor
renderToString()
Exportado desde
vue/server-rendererTipo
tsfunction renderToString( input: App | VNode, context?: SSRContext ): Promise<string>Ejemplo
jsimport { createSSRApp } from 'vue' import { renderToString } from 'vue/server-renderer' const app = createSSRApp({ data: () => ({ msg: 'hola' }), template: `<div>{{ msg }}</div>` }) ;(async () => { const html = await renderToString(app) console.log(html) })()Contexto SSR
Puedes pasar un objeto de contexto opcional, que se puede usar para registrar datos adicionales durante el renderizado, por ejemplo, acceder al contenido de Teleports:
jsconst ctx = {} const html = await renderToString(app, ctx) console.log(ctx.teleports) // { '#teleported': 'contenido teletransportado' }La mayoría de las otras API de SSR en esta página también aceptan opcionalmente un objeto de contexto. Se puede acceder al objeto de contexto en el código del componente a través del ayudante useSSRContext.
Véase también Guía - Renderizado del Lado del Servidor (SSR)
renderToNodeStream()
Renderiza la entrada como una secuencia legible de Node.js.
Exportado desde
vue/server-rendererTipo
tsfunction renderToNodeStream( input: App | VNode, context?: SSRContext ): ReadableEjemplo
js// dentro de un manejador http de Node.js renderToNodeStream(app).pipe(res)Nota
Este método no está soportado en la compilación ESM de
vue/server-renderer, que está desacoplado de los entornos de Node.js. UtilizapipeToNodeWritableen su lugar.
pipeToNodeWritable()
Renderiza y canaliza una instancia existente de Node.js escribible.
Exportado desde
vue/server-rendererTipo
tsfunction pipeToNodeWritable( input: App | VNode, context: SSRContext = {}, writable: Writable ): voidEjemplo
js// dentro de un manejador http de Node.js pipeToNodeWritable(app, {}, res)
renderToWebStream()
Renderiza la entrada como un Web ReadableStream.
Exportado desde
vue/server-rendererTipo
tsfunction renderToWebStream( input: App | VNode, context?: SSRContext ): ReadableStreamEjemplo
js// dentro de un entorno con soporte de ReadableStream return new Response(renderToWebStream(app))Nota
En entornos que no exponen el constructor
ReadableStreamen el ámbito global, se debe usarpipeToWebWritable()en su lugar.
pipeToWebWritable()
Renderizar y canalizar a una instancia Web WritableStream existente.
Exportado desde
vue/server-rendererTipo
tsfunction pipeToWebWritable( input: App | VNode, context: SSRContext = {}, writable: WritableStream ): voidEjemplo
Se suele utilizar en combinación con
TransformStream:js// TransformStream está disponible en entornos como los workers de CloudFlare. // en Node.js, TransformStream necesita ser importado explícitamente desde 'stream/web' const { readable, writable } = new TransformStream() pipeToWebWritable(app, {}, writable) return new Response(readable)
renderToSimpleStream()
Renderiza la entrada en modo streaming utilizando una interfaz sencilla de leer.
Exportado desde
vue/server-rendererTipo
tsfunction renderToSimpleStream( input: App | VNode, context: SSRContext, options: SimpleReadable ): SimpleReadable interface SimpleReadable { push(content: string | null): void destroy(err: any): void }Ejemplo
jslet res = '' renderToSimpleStream( app, {}, { push(chunk) { if (chunk === null) { // hecho console(`renderizado completo: ${res}`) } else { res += chunk } }, destroy(err) { // error encontrado } } )
useSSRContext()
Una API en tiempo de ejecución utilizada para recuperar el objeto de contexto pasado a renderToString() u otras API de renderización del servidor.
Tipo
tsfunction useSSRContext<T = Record<string, any>>(): T | undefinedEjemplo
El contexto recuperado se puede utilizar para adjuntar información necesaria para renderizar el HTML final (por ejemplo, metadatos de cabecera).
vue<script setup> import { useSSRContext } from 'vue' // asegúrate de llamarlo sólo durante el SSR // https://vitejs.dev/guide/ssr.html#conditional-logic if (import.meta.env.SSR) { const ctx = useSSRContext() // ...adjuntar propiedades al contexto } </script>