使用react-router和express routes.js的区别是什么?

45

我正在使用React,Redux和Express进行项目开发,但我不理解react-router和express的routes.js之间的区别,我是否需要将两者结合使用,还是只需要使用一个?

https://github.com/reactjs/react-router

感谢您的帮助 :)

1个回答

67
注意:这个stackoverflow帖子包含了许多可以帮助你的示例和代码。
这是一个经典的误解。Express会处理你的后端路由,而React(使用react-router或任何前端路由库)将处理前端路由。 你的React应用程序可能是一个SPA(单页应用程序),这意味着你的服务器(express或其他)将不得不提供index.html,然后React将从这里处理你的应用程序。这意味着React将评估路由并决定要呈现哪个视图。
因此,你必须确保当用户进入/accounts/me这样的路由时,如果需要,服务器将提供你的前端(React)应用程序,但像/api/users/me这样的东西则会呈现数据。这只是一个例子。
“正常”的用法是使用Express处理你的数据(通过API),而仅使用React处理应用程序(页面和视图)。
如果你正在使用服务器渲染,则会变得更加复杂。
在大多数情况下,是的,你将不得不同时使用两者。
编辑:如果你的问题更具体一些,并且你想做什么更清楚,那么回答就会更容易些。
编辑2:在大多数情况下,服务于前端应用程序和API(数据)的不是同一个服务器,如果是这样的话,只需确保当一些路由命中服务器时发送应用程序:即/home/about(这里显然不是api路由)应该将index.html作为你的前端应用程序发送服务,并且React将负责路由以决定要呈现什么。

1
谢谢你的回答,我有这种架构。 - fandro
不客气,我在我的答案中添加了“edit 2”。这全部是关于理解单页应用程序以及请求到达服务器时发生的事情。 - Cohars

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接