我认为上面的解释对于 和 路由是不正确的,网络上也没有太多解释,但是React Router Docs中有一个很好的解释。来自文档
如果您使用过Rails,Express,Ember,Angular等,则使用了静态路由。在这些框架中,您将在进行任何渲染之前将路由声明为应用程序初始化的一部分。React Router pre-v4也是静态的(大部分是静态的)。让我们看一下如何在express中配置路由:
在静态路由中,声明路由并 其导入顶层。
而在动态路由中
当说动态路由时,是指在您的应用渲染时发生的路由,而不是在运行中的应用之外的配置或约定中进行。
因此,在动态路由中,路由 。上面答案中解释的示例均用于静态路由。
对于动态路由,它更像
const App = () => (
<BrowserRouter>
{/* here's a div */}
<div>
{/* here's a Route */}
<Route path="/tacos" component={Tacos}/>
</div>
</BrowserRouter>
)
// when the url matches `/tacos` this component renders
const Tacos = ({ match }) => (
// here's a nested div
<div>
{/* here's a nested Route,
match.url helps us make a relative path */}
<Route
path={match.url + '/carnitas'}
component={Carnitas}
/>
</div>
)
首先,在 部件只有一个路径被声明/tacos
。当用户导航到/tacos
的 部件安装并且存在的下一个路由被定义/carnitas
当用户导航到。所以/tacos/carnitas
,在 部件安装等。
因此,这里的路由是动态初始化的。