【问题标题】:Create-react-app render component on server在服务器上创建-react-app 渲染组件
【发布时间】:2017-08-30 17:46:27
【问题描述】:

我在我的最新项目中使用了 create-react-app,它很棒!现在我面临一个问题,我不确定如何正确解决。

我已经使用 redux 为我的状态管理创建了应用程序,并且一切运行良好。

现在我对 React 中的服务器端渲染没有太多经验,但是对于我的下一个功能,我需要采用现有/正在工作的 React 组件之一(连接到 redux 存储)并在服务器上渲染它create-react-app 附带的。我想这样做的原因是能够使用一些库,如 pdf 生成器和类似的库,以便能够打印出其中的一些(还有一些其他的东西,但这是基本的)。

我感到困惑的第一件事是,因为我不想在服务器上渲染所有内容,所以运行 webpack-dev 服务器和节点服务器的最佳/正确方法(用于开发)是什么,它将完成我提到的所有这些任务上面并行,而不是仅仅将其默认端口更改为 8000,然后手动运行?

其次,我应该能够只在服务器上的现有组件上使用 ReactDOMServer.renderToString 还是有其他东西会使事情复杂化(我知道我肯定需要在服务器上添加 babel)?

【问题讨论】:

  • create-react-app 还不支持服务端渲染!

标签: reactjs express redux


【解决方案1】:

Create React App 不支持服务器渲染。您可能希望迁移到 Next.js。

【讨论】:

  • 嘿伙计!非常感谢您的回答!好的会检查它,但是在当前设置下,我是否可以通过使用 renderToStaticMarkup 获取服务器上现有组件的 html(将包括 babel ofc)?我只是不想在客户端上进行 pdf 渲染,所以在 server.js 中我可以使用 html-pdf lib 或类似的东西?
  • 是吗?我对您的用例了解不多,无法提供更多详细信息。
  • 是的,我设法做到了,谢谢伙计,只需要将 babel 加载到服务器,包含组件,将其传递给 renderToStaticMarkup,然后使用 html-pdf lib for node 使用 html 创建 pdf .js
【解决方案2】:

不幸的是,Create React App (CRA) 没有可扩展点来允许这样做。但是有一个稍微改变的 CRA 版本,它允许使用常规 CRA 管道编译、测试和运行客户端和服务器端代码 - npm start 将编译和启动应用程序的cient 端和服务器端部分,在同一个 HTTP 端口上使用单个 Webpack 实例。

您可以访问React App SDK了解更多信息。

【讨论】:

    猜你喜欢
    • 2021-07-11
    • 2018-01-30
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2017-11-05
    • 2015-05-30
    • 2015-03-09
    • 1970-01-01
    相关资源
    最近更新 更多