Reactjs 反应:之间的差异<;路线精确路径=“路径”/&引用/&燃气轮机;及<;路由路径=“路径”/&引用/&燃气轮机;
有人能解释一下两者的区别吗Reactjs 反应:之间的差异<;路线精确路径=“路径”/&引用/&燃气轮机;及<;路由路径=“路径”/&引用/&燃气轮机;,reactjs,react-router,react-router-dom,Reactjs,React Router,React Router Dom,有人能解释一下两者的区别吗 及 我不知道这个例子中“精确”的含义,实际上什么都不知道。当您有多个具有相似名称的路径时,exact参数起作用: 例如,假设我们有一个显示用户列表的Users组件。我们还有一个CreateUser组件,用于创建用户。CreateUsers的url应嵌套在Users下。因此,我们的设置可能如下所示: <Switch> <Route path="/users" component={Users} /> <Route path=
及
我不知道这个例子中“精确”的含义,实际上什么都不知道。当您有多个具有相似名称的路径时,
exact
参数起作用:
例如,假设我们有一个显示用户列表的Users
组件。我们还有一个CreateUser
组件,用于创建用户。CreateUsers
的url应嵌套在Users
下。因此,我们的设置可能如下所示:
<Switch>
<Route path="/users" component={Users} />
<Route path="/users/create" component={CreateUser} />
</Switch>
简而言之,如果您为应用程序的路由定义了多条路由,请使用
Switch
组件,如下所示
<Switch>
<Route exact path="/" component={Home} />
<Route path="/detail" component={Detail} />
<Route exact path="/functions" component={Functions} />
<Route path="/functions/:functionName" component={FunctionDetails} />
</Switch>
然后,您必须将exact
关键字添加到该路径,该路径也包含在另一条路径中。例如,主路径/
包含在所有路径中,因此它需要有精确的关键字,以区别于以/
开头的其他路径。原因也类似于/函数
路径。如果您想使用另一条路径,如/functions detail
或/functions/open-door
,其中包含/functions
,则需要对/functions
路径使用精确的
精确:bool
如果为true,则仅当路径与location.pathname
完全匹配时才会匹配
**path** **location.pathname** **exact** **matches?**
/one /one/two true no
/one /one/two false yes
最短的答案是
请试试这个
<switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/shop" component={Shop} />
</switch>
请试试这个。
<Router>
<div>
<Route exact path="/" component={Home} />
<Route path="/news" component={NewsFeed} />
</div>
</Router>
使用exact,您可以确保主页组件的内容不会出现在其他页面上
这是一个不使用精确:
主页
地点:/
-----------------
homepage content
-----------------
-----------------
homepage content
-----------------
第二页
位置:/第二页
-----------------
homepage content
-----------------
-----------------
second content
-----------------
-----------------
second content
-----------------
==========================================
使用精确:
主页
地点:/
-----------------
homepage content
-----------------
-----------------
homepage content
-----------------
第二页
位置:/第二页
-----------------
homepage content
-----------------
-----------------
second content
-----------------
-----------------
second content
-----------------
“但是,如果我们转到,它将再次遍历所有已定义的路由并返回它找到的第一个匹配。”-事实上,它将返回它找到匹配的所有路由(全部或部分)。@Chase DeAnda所描述的行为只有在用标签括起来的情况下才会发生。exact
应该是我的默认值。关于每个路由定义是否在不同的组件中,我的意思是在管理组件中/admin//users
,在根组件中/admin/users/create
???我目前遇到这种情况,典型的精确的解决方案无法正常工作。我认为只有当两条路由都处于其交换机父级(或组件)的同一级别@ChaseDeAnda时,这种行为才会起作用。我需要的恰恰相反。也许我应该写一个新的答案来澄清我的情况并得到正确的答案。答案都很好。然而,人们可能会产生这样的疑问:“为什么我们不能为所有的路线提供准确的”,想象一下这样一个URL<代码>
这是一个示例,用户的ID将动态输入URL,因此我们不能在您的路由器中使用exact
prop。这基本上无法解释exact
属性/prop的含义,因此肯定不是“答案”。你应该尝试解决实际被问到的问题,而不是给出一个你不确定OP实际存在的问题的解决方案。假设您有两条路线,如/motor
和/motorbike
,那么您需要将精确的放置到路径为/motor
的路线上。否则,/motor
和/motorbike
路线都会使用路径/motor
拾取组件。请解释您建议的解决方案。