Реквизит ReactRouter strict
определяет, есть ли в строгая запись запрошенного пути в pathname, как описано в документации. Например, если вы не хотите обрабатывать маршрут страницы без косой черты, ваш Route
можно описать так:
<Route path="/mypath/" strict ... />
Таким образом, путь /mypath
не будет обрабатываться с этим Route
, а путь /mypath/
будет. Обратите внимание, что в этом режиме этот Route
также будет перехватывать другие дочерние маршруты, например, /mypath/childroute
, /mypath/childroute/childroute2
и т. Д., Но маршрут не перехватит /mypath?query=...
. Подумайте об этом, как если бы вы использовали "string".includes("substring")
:
"/mypath".includes("/mypath/") => false
"/mypath/".includes("/mypath/") => true
"/mypath/kappa".includes("/mypath/") => true
Опора exact
используется для определения, существует ли точно запрошенный путь.
Обычно он используется для переноса маршрутов без дочерних маршрутов (например, домашней страницы).
<Route path="/" exact ... />
<Route path="/" ... />
Первый маршрут будет охватывать только такие маршруты, как mydomain.com
, mydomain.com/
, mydomain.com/?query=...
и т. Д. Второй будет охватывать все маршруты, например, mydomain.com
и mydomain.com/myroute
.