在 React 中为服务器端渲染生成 CSS - Material-UI

Posted

技术标签:

【中文标题】在 React 中为服务器端渲染生成 CSS - Material-UI【英文标题】:Generate CSS for Server Side Rendering in React - Material-UI 【发布时间】:2019-02-24 14:39:33 【问题描述】:

我正在尝试根据Material UI - Server Rendering为服务器端渲染生成 CSS

我将 React on Rails 与 php (React Bundle) 一起使用,还有其他生成 CSS 的方法吗?在文档中,我们在 JS 中的一个请求中提供所有完整内容。在我的情况下,我必须为 twig 和下一个单独的 CSS 提供组件。还有其他方法吗?

【问题讨论】:

【参考方案1】:

我想你可以将带有 html 模板的 CSS 传递给客户端,就像我在我的一个项目中所做的一样。

const cssStyleTage = extractCSSFromMaterialUIServerSideAPI();
const componentStream = someHtmlConten;

const html = `
  <!doctype html>
    <html>
    <head>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      $cssStyleTage
    </head>
    <body>
        <div id="root">
            $componentStream
        </div>
    </body>
    </html>`;

// pass it to client, this you can open in any iframe at client side.
res.status(200).send(html);

// or otherwise just send the css styles separately.
res.status(200).send(
  cssStyleTags: cssStyleTage,
  html: componentStream
);

我只是想知道有哪些可能的方法可以完成,如果这可以帮助您完成任务。

【讨论】:

以上是关于在 React 中为服务器端渲染生成 CSS - Material-UI的主要内容,如果未能解决你的问题,请参考以下文章

react服务端渲染框架

如何在 react-static 中为每个页面生成单独的 css 文件

带有服务器端渲染的 Webpack-React:使用哈希名称链接到服务器模板中的 css 文件

React 服务端渲染完美的解决方案

react服务端渲染(同构)

React前后端如何同构,防止重复渲染