我应该使用快递,客户端反应路由器还是服务器端反应路由器?

我有一个简单的应用程序,显示用户的评论列表。 当用户点击时,应用程序应该去/users/<id>并显示一个新的页面与用户的细节,将从MongoDB查询。 我很难理解这个逻辑应该在哪里。

我看到了在客户端使用反应路由器的例子,如:

 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)和search引擎优化以及社交共享(Facebook需要阅读HTML元标签是很有帮助的,这并不容易,你也可以非常喜欢从服务器渲染中提取水合物,从而加速用户在更深的页面上的体验。

你可能永远不会想要的只是渲染服务器端。 有一种错过了React的全部力量。

开始客户端,一些很好的样板,如https://github.com/erikras/react-redux-universal-hot-example这将带你一路同形,并再次回来&#x3002;

随着反应,你做单页面应用程序,所以你永远不会重新加载页面,expression你正在使用PHP的Apache服务器