【问题标题】:How to add CSS server side render for React Next app with Material-ui如何使用 Material-ui 为 React Next 应用程序添加 CSS 服务器端渲染
【发布时间】:2019-04-18 12:10:24
【问题描述】:

我有一个在 Next.js 中构建的简单 React 应用程序,它正在运行一个快速服务器:

app.prepare()
.then(() => {
  const server = express()

  server.get('/job/:id', (req, res) => {
    const actualPage = '/job'
    const queryParams = { id: req.params.id } 
    app.render(req, res, actualPage, queryParams)
  })

  server.get('*', (req, res) => {
    return handle(req, res)
  })

  server.listen(3000, (err) => {
    if (err) throw err
    console.log('> Ready on http://localhost:3000')
  })
})
.catch((ex) => {
  console.error(ex.stack)
  process.exit(1)
})

我也有 Material-UI 用于材质样式组件,需要确保组件得到服务器端渲染。

我已尝试关注this tutorial,但似乎无法调整代码以适应在 Next.js 中设置 Express 服务器的方式

我相信我基本上需要添加某种JssProvider 来运行服务器端和客户端,以便两者都可以访问样式表。如果我错了,请纠正我?

有人知道如何在 Next 中实现这一点吗?

如果有人有一个使用 SSR Material-ui 设置的 Next.js 示例应用程序的链接,那也将是一个巨大的帮助。

谢谢

【问题讨论】:

  • @PedroVieira 建议 JssProvider 是正确的。更多详情,example 向您展示如何使用 NextJS + Material UI

标签: javascript node.js reactjs material-ui next.js


【解决方案1】:

我认为这可能与我在 question 中帮助解决的问题相同。他也在使用 NextJS。您可以像这样添加 JssProvider:

import JssProvider from "react-jss/lib/JssProvider";

class App extends Component {
  render() {
    <JssProvider>
      *the rest of your material-ui components*
    </JssProvider>
  }
}

【讨论】:

  • 在这个问题中提到了他与 NextJS 的例子
猜你喜欢
  • 2019-02-24
  • 2020-10-01
  • 2018-05-18
  • 2018-12-11
  • 2017-05-26
  • 2019-04-18
  • 2018-08-16
  • 2023-03-07
  • 2023-03-24
相关资源
最近更新 更多