React 18 是 React 框架的最新版本,它引入了一些新特性,比如自动批量更新和异步渲染等。SSR(Server-Side Rendering)是指在服务端进行页面渲染,然后再将渲染好的页面发送给客户端,这样可以提高首屏加载速度和 SEO。
下面是一个简单的 React 18 SSR 项目搭建步骤:
- 创建项目
使用 create-react-app 工具创建一个新的 React 项目:
npx create-react-app my-app
- 安装依赖
进入项目目录,安装以下依赖:
npm install express react react-dom react-scripts
npm install -D nodemon
其中,express 是一个常用的 Node.js 服务器框架,nodemon 是一个工具,可以在代码修改后自动重启服务器。
- 编写服务器代码
在项目根目录下创建一个 server.js 文件,编写服务器代码:
const express = require('express');
const React = require('react');
const ReactDOMServer = require('react-dom/server');
const App = require('./src/App');
const server = express();
const port = 3000;
server.use(express.static('build'));
server.get('*', (req, res) => {
const appString = ReactDOMServer.renderToString(<App />);
res.send(`
<html>
<head>
<title>React 18 SSR Example</title>
</head>
<body>
<div id="root">${appString}</div>
<script src="/static/js/main.js"></script>
</body>
</html>
`);
});
server.listen(port, () => {
console.log(`Server is listening on port ${port}`);
});
这段代码创建了一个 Express 服务器,当有请求时,使用 ReactDOMServer.renderToString 将 React 组件渲染成 HTML 字符串,并返回给客户端。注意,这里我们将渲染后的 HTML 字符串插入到了一个 id 为 "root" 的 div 中,这个 div 将成为 React 的根节点。
- 修改 package.json
打开 package.json 文件,将启动命令修改为:
"start": "nodemon server.js"
这样我们就可以使用 nodemon 工具运行服务器,这样每次修改代码后,服务器将自动重启。
- 编译 React 代码
在项目根目录下执行以下命令,编译 React 代码:
npm run build
这个命令会将 React 代码打包成静态文件,存放在 build 目录中。
- 启动服务器
最后,执行以下命令启动服务器:
npm start
打开浏览器,访问 http://localhost:3000,就可以看到 React 18 SSR 项目的效果了。
以上是一个简单的 React 18 SSR 项目搭建步骤,具体实现方式可能因项目而异,希望对您有所帮助。