使用 Parcel 和 Express 正确设置 React SSR

Pau*_*sev 5 javascript reactjs server-side-rendering parceljs

我读了很多教程并查看了一些存储库,但仍然没有得到我想要的。

例如,这个存储库使用 Cheerio(类似服务器的 jQuery)和 React Helmet。

但我只想用 Parcel、React、ReactDOM、React Router DOM 和 Express 设置我的应用程序。

我尝试在服务器上渲染组件,但这不是我想要的。我想使用hydrate函数,但不知道如何使其在服务器上呈现。server.js 看起来像这样,但这里只渲染了一个组件,而不渲染其他任何组件:

import express from 'express'
import React from 'react'
import { renderToString } from 'react-dom/server'
import App from '../app/index'

const app = express()

app.get('/', (req, res) => {
    res.send(renderToString(<App/>))
})
Run Code Online (Sandbox Code Playgroud)

我从教程中获取了这个,但它只渲染应用程序,但我需要渲染很多组件!换句话说,我只需要使用 Parcel 设置 React SSR 即可。

我用于构建应用程序的 NPM 脚本:

   "build-client": "parcel app/index.html -d dist/client --port 3000",
   "build-server": "parcel server/index.js -d dist/server --target node",
   "run-server": "nodemon dist/server/index.js",
   "server": "run-s build-server run-server"
Run Code Online (Sandbox Code Playgroud)

我们很高兴看到一个关于如何设置 React SSR 的完整存储库,除了 Express 和 Parcel 之外没有任何附加库,但是如果有任何适用于 Express 的 React SSR 中间件插件,如果有人在这里分享它,那就太酷了。

RZ8*_*Z87 -3

我建议查看Next.js。它是一个构建在 React 和 Express 之上的生产就绪框架。它以零配置解决了开箱即用的SSR 。