如何使用 NextJS 和 React Router 呈现服务器端反应内容?
How to render server side react content with NextJS and React Router?
我需要从服务器端呈现我的 React 应用程序。为此,我正在使用框架 next.js。但我面临两个问题。
首先,我需要动态地为我的应用程序提供服务。这意味着我需要一个服务器端路由器来根据当前 url 显示我的反应组件。
然后,我需要在渲染我的组件之前加载一些动态数据。所以我需要将这些数据从节点传递到我的反应组件。
这是我目前的情况:
// In Node.js
app.get("/",function(req,res){
return app.prepare()
.then(() => handle(req, res))
.catch(ex => {
console.error(ex.stack)
process.exit(1)
})
})
//In React.js
import React from 'react'
export default class Index extends React.Component{
render(){
return(
<div>
<p>Hello Server Side Rendered React App from Google Cloud Front</p>
</div>
)
}
}
那么,我该怎么办?
如果你在 React 中使用 NextJs,你不需要 react-router 来创建页面,更简单,你需要创建一个名为 pages 的目录,其中包含名为 index.js 的组件,它们有要管理的组件导航等等。
查看 GitHub 文档,他们已经很好地介绍了这些步骤。
快速示例:
// pages/index.js
import Link from 'next/link'
export default () => (
<div>Click <Link href="/about"><a>here</a></Link> to read more</div>
)
// pages/about.js
export default () => (
<p>Welcome to About!</p>
)
我需要从服务器端呈现我的 React 应用程序。为此,我正在使用框架 next.js。但我面临两个问题。
首先,我需要动态地为我的应用程序提供服务。这意味着我需要一个服务器端路由器来根据当前 url 显示我的反应组件。
然后,我需要在渲染我的组件之前加载一些动态数据。所以我需要将这些数据从节点传递到我的反应组件。
这是我目前的情况:
// In Node.js
app.get("/",function(req,res){
return app.prepare()
.then(() => handle(req, res))
.catch(ex => {
console.error(ex.stack)
process.exit(1)
})
})
//In React.js
import React from 'react'
export default class Index extends React.Component{
render(){
return(
<div>
<p>Hello Server Side Rendered React App from Google Cloud Front</p>
</div>
)
}
}
那么,我该怎么办?
如果你在 React 中使用 NextJs,你不需要 react-router 来创建页面,更简单,你需要创建一个名为 pages 的目录,其中包含名为 index.js 的组件,它们有要管理的组件导航等等。
查看 GitHub 文档,他们已经很好地介绍了这些步骤。
快速示例:
// pages/index.js
import Link from 'next/link'
export default () => (
<div>Click <Link href="/about"><a>here</a></Link> to read more</div>
)
// pages/about.js
export default () => (
<p>Welcome to About!</p>
)