node.js – 我应该使用快速,客户端反应路由器还是服务器端反应路由器?

我有一个简单的应用程序,显示用户的评论列表.点击用户后,该应用应转到/ users /< id>并显示一个新页面,其中包含将从MongoDB查询的用户详细信息.我很难理解逻辑应该在哪里.

我在客户端看到了使用react路由器的例子:

render((
<Router>
  <Route path="/" component={App}>
     <Route path="/user/:userId" component={User}/>
  </Route>
</Router>
), document.body)

但在服务器端也是如此:

<Route name="root" path="/" handler={require('./handlers/Root')}>

并且还使用快速路由:

app.get('/', function home (req, res, next) {
  res.render('layout', {
    reactHtml: React.renderToString(<App />)
  });
});

app.get('/user', function home (req, res, next) {
  res.render('layout', {
    reactHtml: React.renderToString(<User />)
  });
});

哪一个是要走的路?有什么区别?

最佳答案 React应用程序通常最初只是客户端,如您所注意到的那样附加到节点.这就是它如此迅速的原因:只有API调用,没有重新渲染.

同构应用程序也在服务器上运行,这有助于回退(没有JS)以及SEO和社交共享(Facebook需要阅读HTML元标记.这根本不容易实现.你也可以得到真正的幻想和来自服务器渲染的水合物,这加速了那些更深层页面上的用户体验.

您可能永远不会想要的只是渲染服务器端.有点想念React的全部力量.

启动客户端,使用一些像https://github.com/erikras/react-redux-universal-hot-example这样的良好样板,它将带您一直到同构并再次返回.

点赞