Vue 3.0 的服务端渲染(Server-Side Rendering,SSR)和 Vue 2.x 相比有一些变化,主要在于 Vue 3.0 的 SSR 支持更先进的特性和更简洁的 API。以下是使用 Vue 3.0 进行服务端渲染的基本步骤:

1. 安装 Vue 3.0 SSR 相关依赖

首先,你需要安装 @vue/server-renderer,它是 Vue 3.0 的服务端渲染核心库。
npm install @vue/server-renderer

2. 创建服务端入口文件

在项目中创建一个服务端入口文件,通常命名为 server-entry.js 或类似的名称。
// server-entry.js
import { createSSRApp } from 'vue';
import { renderToString } from '@vue/server-renderer';
import App from './App.vue';

export async function render(url) {
  const app = createSSRApp(App);
  // 设置路由或其他上下文

  try {
    const appHtml = await renderToString(app);

    return `<html>
      <head><title>Vue 3.0 SSR</title></head>
      <body>${appHtml}</body>
    </html>`;
  } catch (error) {
    console.error(error);
    return '';
  }
}

3. 配置服务器

在 Node.js 服务器中,使用上述的服务端入口文件并处理路由等相关配置。以下是一个基本的 Express 服务器配置的示例:
// server.js
const express = require('express');
const { render } = require('./server-entry');

const app = express();
const port = 3000;

app.get('*', async (req, res) => {
  const html = await render(req.url);
  res.send(html);
});

app.listen(port, () => {
  console.log(`Server is listening on http://localhost:${port}`);
});

4. 构建和运行

在项目中创建一个构建脚本,用于构建客户端和服务端的代码。你可以使用 webpack 或其他工具进行构建。
# 安装 webpack 和相关依赖
npm install webpack webpack-cli webpack-dev-server

# 安装 vue-loader 和 vue-template-compiler
npm install vue-loader vue-template-compiler

然后,创建一个 webpack 配置文件,例如 webpack.config.js:
// webpack.config.js
const path = require('path');

module.exports = {
  entry: './src/client-entry.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'client-bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      }
    ]
  }
};

创建客户端入口文件 client-entry.js:
// client-entry.js
import { createApp } from 'vue';
import App from './App.vue';

const app = createApp(App);
app.mount('#app');

在 package.json 中添加 scripts:
"scripts": {
  "start": "webpack-dev-server --config webpack.config.js --open",
  "build": "webpack --config webpack.config.js"
}

最后,运行你的服务器和构建脚本:
# 运行服务器
node server.js

# 在另一个终端窗口运行构建脚本
npm start

这是一个简单的 Vue 3.0 服务端渲染的例子。在实际项目中,你可能需要更多的配置,例如处理静态文件、使用路由、状态管理等。Vue 3.0 的官方文档也提供了更详细的 SSR 教程:[Vue.js SSR Guide](https://v3.vuejs.org/guide/ssr/introduction.html)。


转载请注明出处:http://www.zyzy.cn/article/detail/532/Vue 3.0