reactjs - Webpack 和 SASS 问题(React 应用程序)

标签 reactjs webpack

我有一个非常基本的 Node.js + Express 应用程序,使用 React 进行一些服务器和客户端渲染。当 Express 应用程序返回 React 渲染的组件作为其响应的一部分时,它会返回到客户端,但未应用 CSS。然后快速闪现到CSS渲染的页面。我对正在发生的事情感到有点困惑,只想立即渲染 CSS...我对使用 webpack 和 React 有点陌生,所以任何帮助/解释将不胜感激。

index.jade

html  
head
    title="Sample app"
    meta(charset='utf-8')
    meta(http-equiv='X-UA-Compatible', content='IE=edge')
    meta(name='viewport', content='width=device-width, initial-scale=1')
body
    #app!= content
    script(src='http://localhost:8080/public/index.js')

App.js

if (process.env.BROWSER) require("../styles/App.scss");

import React from 'react';

export default class App extends React.Component {  
  render () {
    return (
      <div>
        <p>Hello, world!</p>
      </div>
    )
  }
}

server.js(片段)

...
app.get('/*', function (req, res) {  
    let content = React.renderToString(<App />);
    res.render('index', { content: content });
});
...

最佳答案

使用Extract Text Plugin以避免出现无样式文本。 Pete Hunt(React 的创建者之一)ran into this same issue with Webpack 。由此,sokra(Webpack 开发人员)创建了这个插件来将 css 提取到样式表中。

如果没有这个插件,浏览器将按以下顺序执行:

  • 显示 html(由服务器端 React 渲染)。
  • 获取 Webpack bundle 。
  • 执行 Webpack 包,在 head 中插入样式元素。

使用此插件,浏览器按以下顺序执行操作:

  • 在 head 中加载样式表。
  • 显示 html(由服务器端 React 渲染)。
  • 获取 Webpack bundle 。
  • 执行 Webpack bundle 。

关于reactjs - Webpack 和 SASS 问题(React 应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236086/

相关文章:

webpack - 如何在 webpack.config.js 中使用 ES6?

javascript - 从 Typescript/Javascript 中的平面数组构建树数组(3 维)

android - 将 React 或 React Native 嵌入到现有的移动应用程序中

javascript - React.js - 正确从 API 加载单个帖子数据

node.js - 使用 webpack 导入 monaco-editor 时找不到依赖项

Webpack 无法编译简单应用程序

reactjs - 如何更改功能组件中的上下文值?

javascript - ReactJs:从字体更改方法调用时 fontSize 不会更改

node.js - GENERATE_SOURCEMAP=false 问题

css - 网络包 4 : How to get CSS source maps working with LESS?