API de Renderizado en el 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: 'hello' }), 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, accediendo al contenido de los Teleports:
jsconst ctx = {} const html = await renderToString(app, ctx) console.log(ctx.teleports) // { '#teleported': 'teleported content' }La mayoría de las otras APIs 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 asistente useSSRContext.
Ver también Guía - Renderizado en el Servidor
renderToNodeStream()
Renderiza la entrada como un stream Readable de Node.js.
Exportado desde
vue/server-rendererTipo
tsfunction renderToNodeStream( input: App | VNode, context?: SSRContext ): ReadableEjemplo
js// dentro de un handler http de Node.js renderToNodeStream(app).pipe(res)Nota
Este método no es compatible con la compilación ESM de
vue/server-renderer, que está desacoplada de los entornos de Node.js. UsapipeToNodeWritableen su lugar.
pipeToNodeWritable()
Renderiza y redirige a una instancia de stream Writable de Node.js existente.
Exportado desde
vue/server-rendererTipo
tsfunction pipeToNodeWritable( input: App | VNode, context: SSRContext = {}, writable: Writable ): voidEjemplo
js// dentro de un handler 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 para 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()
Renderiza y redirige a una instancia de Web WritableStream existente.
Exportado desde
vue/server-rendererTipo
tsfunction pipeToWebWritable( input: App | VNode, context: SSRContext = {}, writable: WritableStream ): voidEjemplo
Esto se usa típicamente en combinación con
TransformStream:js// TransformStream está disponible en entornos como CloudFlare workers. // 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 usando una interfaz readable simple.
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(`render complete: ${res}`) } else { res += chunk } }, destroy(err) { // error encontrado } } )
useSSRContext()
Una API de tiempo de ejecución utilizada para recuperar el objeto de contexto pasado a renderToString() u otras APIs de renderizado en el servidor.
Tipo
tsfunction useSSRContext<T = Record<string, any>>(): T | undefinedEjemplo
El contexto recuperado se puede usar para adjuntar información necesaria para renderizar el HTML final (por ejemplo, metadatos del
head).vue<script setup> import { useSSRContext } from 'vue' // asegúrate de llamarlo solo durante el SSR // https://vitejs.dev/guide/ssr.html#conditional-logic if (import.meta.env.SSR) { const ctx = useSSRContext() // ...adjuntar propiedades al contexto } </script>
data-allow-mismatch
Un atributo especial que se puede usar para suprimir las advertencias de desajuste de hidratación.
Ejemplo
html<div data-allow-mismatch="text">{{ data.toLocaleString() }}</div>El valor puede limitar el desajuste permitido a un tipo específico. Los valores permitidos son:
textchildren(solo permite desajustes para hijos directos)classstyleattribute
Si no se proporciona ningún valor, se permitirán todos los tipos de desajustes.








