服务器端渲染(Server-Side Rendering,简称 SSR)是一种在服务器端完成页面渲染的技术,适用于需要快速加载页面内容、提升 SEO 效果的应用场景。以下是一个基本的 SSR 搭建教程,以使用 Node.js 和 Express.js 为例:
npm init -y
npm install express vue vue-server-renderer
server.js
的文件,并写入以下代码:const express = require('express');
const { createRenderer } = require('vue-server-renderer');
const fs = require('fs');
const path = require('path');
const Vue = require('vue');
const app = express();
const renderer = createRenderer();
app.get('*', async (req, res) => {
// 读取 Vue 组件文件
const template = fs.readFileSync(path.join(__dirname, './public/index.html'), 'utf8');
// 创建 Vue 实例
const app = new Vue({ template });
// 渲染 Vue 实例为 HTML 字符串
const html = await renderer.renderToString(app);
// 发送完整的 HTML 页面给客户端
res.send(`
<!DOCTYPE html>
<html>
<head>
<title>My SSR Page</title>
</head>
<body>
<div id="app">${html}</div>
<script src="/bundle.js"></script>
</body>
</html>
`);
});
app.listen(3000, () => console.log('Server running on port 3000'));
App.vue
文件,内容如下:<template>
<div>
<h1>Hello, SSR!</h1>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
public/index.html
文件,内容如下:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title }}</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
npm run build
命令,构建 Vue 应用的静态文件。node server.js
,启动服务器。通过以上步骤,你可以成功搭建一个简单的 SSR 服务器。访问 http://localhost:3000
,你将看到服务器渲染的页面内容。
SSR 的优势在于能够提供更好的 SEO 效果和更快的首屏加载速度,但同时也存在服务器负载较大、开发调试相对复杂等挑战
领取专属 10元无门槛券
手把手带您无忧上云