What is @vue/server-renderer?
The @vue/server-renderer package is designed for server-side rendering (SSR) of Vue.js applications. It allows developers to render Vue components on the server and send the rendered HTML to the client, improving the initial load time and SEO for Vue.js applications. This package is part of the Vue.js ecosystem and is specifically tailored for Vue 3.x applications.
What are @vue/server-renderer's main functionalities?
Rendering a Vue Component to a String
This feature allows you to render a Vue component to an HTML string on the server. This is useful for generating the initial HTML for a page on the server, which can then be sent to the client for faster initial load times and better SEO.
const { createSSRApp } = require('vue');
const { renderToString } = require('@vue/server-renderer');
const app = createSSRApp({
data: () => ({ msg: 'Hello, server-side rendering!' }),
template: '<div>{{ msg }}</div>'
});
renderToString(app).then(html => {
console.log(html);
});
Streaming a Vue Component
This feature enables streaming rendering of a Vue component. Instead of waiting for the entire component to be rendered before sending it to the client, the rendered output is streamed to the client as it's generated. This can improve the perceived performance of the application.
const { createSSRApp } = require('vue');
const { renderToNodeStream } = require('@vue/server-renderer');
const express = require('express');
const app = express();
const vueApp = createSSRApp({
data: () => ({ msg: 'Hello, streaming SSR!' }),
template: '<div>{{ msg }}</div>'
});
app.get('/', (req, res) => {
res.setHeader('Content-Type', 'text/html');
const stream = renderToNodeStream(vueApp);
stream.pipe(res);
});
app.listen(3000);
0
@vue/server-renderer
const { createSSRApp } = require('vue')
const { renderToString } = require('@vue/server-renderer')
const app = createSSRApp({
data: () => ({ msg: 'hello' }),
template: `<div>{{ msg }}</div>`
})
;(async () => {
const html = await renderToString(app)
console.log(html)
})()