1

按照react-router 中的自述文件

var routes = (
  <Route name="app" path="/" handler={App}>
    <Route name="inbox" handler={Inbox}/>
    <Route name="calendar" handler={Calendar}/>
    <DefaultRoute handler={Dashboard}/>
  </Route>
);

Router.run(routes, function (Handler) {
  React.render(<Handler/>, document.body);
});

对节点和信誉良好的前端 js 框架非常新鲜,请原谅这个菜鸟问题..

如何最好地处理服务器上的路由?

我的意思是,当有人登陆时会发生什么/calendar,我是否必须在反应代码中适应客户端的路由和在快速路由中的服务器,或者是否应该在 express 上有通配符路由。IE 有人登陆/calendar,应该表达交付的 html/并让 react 来处理其余的?

谢谢,约翰

4

2 回答 2

3

你可以使用 React Router 来渲染两边的所有路由。

在服务器端,如果你使用 Express 或类似工具,这通常意味着创建一些中间件,这些中间件将使用 React Router 来处理传入请求,而不是使用服务器端 lib 自己的路由。在这个答案中有一个最小的例子和解释:

举一个更高级的例子,我有一些 Express 中间件,它还可以处理客户端上的数据获取、页面标题生成和引导,这里记录了这些中间件,并附有相关来源的链接:

于 2015-04-05T10:27:57.213 回答
0

我不确定它是如何与 react-router 一起工作的,但通常使用客户端路由,您只提供来自服务器的主索引文件,然后客户端处理路由。

使用 Express,您可以设置始终为您的主索引文件(以及您的客户端)提供服务的路由。在我的网站上,我使用 AngularJS 进行路由,而我在中间件之外的唯一路由是

app.get('/*', function (req, res) {
  res.sendFile('index.html');
});

客户端从那里处理所有路由。

于 2015-04-04T21:53:22.577 回答