react-router-dom 中的 Router 和 Route 有什么不同

TMK*_*sun 5 reactjs react-router

在阵营,路由器文档,我已经看到,它有两个进口RouteRouter模块的react-router-dom。我想知道这两个模块有什么不同?

Tha*_*ara 8

路由器

路由器组件是在浏览器位置和 React 应用程序之间建立连接的原因。它不会在您的页面上呈现任何可见的内容。它只是公开 API 以通过React 上下文与浏览器的位置更改进行交互。因此,树下的任何组件都可以使用此 API 根据浏览器中的位置更改来更改其行为,或者将浏览器位置更改为他们想要的位置。

路由器是所有其他特定路由器组件的抽象。实际上,我们使用它的特定实现,如 BrowserRouter、MemoryRouter 和 HashRouter,它们使用不同的方法来管理浏览器历史记录。此外,Router 通常是组件树中的顶级组件,并且在整个应用程序中仅使用一次。所有其他 react-router 组件都应该是 Router 的后代,因为如果没有 Router 提供的 API,它们就无法运行。

路线

路线很容易解释。当位置与路线的路径匹配时,它只会呈现一些 UI。因此,一个应用程序可以根据其在组件树的不同级别中的布局复杂性而拥有多个路由。此外,Route 有一些额外的道具来配置匹配应该如何发生。Route 内部使用 Router 提供的 API 来访问位置并决定是否渲染给定的组件。