Réagir : différence entre <Itinéraire exact path=“/” /> et <Route path=“/” />
Quelqu'un peut expliquer la différence entre
<Route exact path="/" component={Home} />
et
<Route path="/" component={Home} />
Je ne connais pas le sens exact de'
Vous devez vous connecter pour publier un commentaire.
Dans cet exemple, vraiment rien. Le
exact
param entre en jeu lorsque vous avez plusieurs chemins qui ont des noms similaires:Par exemple, imaginons que nous ayons un
Users
composant qui affiche une liste des utilisateurs. Nous avons également uneCreateUser
composant qui est utilisé pour créer des utilisateurs. L'url pourCreateUsers
doit être imbriquée sousUsers
. Donc, notre programme d'installation pourrait ressembler à quelque chose comme ceci:Maintenant, le problème, ici, quand nous allons à
http://app.com/users
le routeur va passer par tous de nos itinéraires définis et retour le PREMIER match qu'il trouve. Donc, dans ce cas, on pourrait trouver leUsers
route d'abord, puis le retourner. Du tout bon.Mais, si nous sommes allés à
http://app.com/users/create
, il serait à nouveau aller à travers l'ensemble de nos itinéraires définis et retour le PREMIER match qu'il trouve. Réagir routeur n'partielle correspondante, afin/users
partiellement correspond/users/create
, il aurait tort de retour de laUsers
route de nouveau!La
exact
param désactive la reconnaissance partielle d'un itinéraire et fait en sorte qu'il retourne uniquement la route si le chemin d'accès est une correspondance EXACTE avec l'url actuelle.Donc dans ce cas, il convient d'ajouter
exact
à notreUsers
itinéraire afin qu'il corresponde uniquement sur/users
:Les docs expliquer
exact
dans le détail et de donner d'autres exemples.exact
doit être la valeur par défaut, à mon avisEn bref, si vous avez plusieurs itinéraires définis pour votre application de routage, fermée avec
Switch
composant comme cela;Alors vous devez mettre
exact
mot-clé de la Route qui le chemin est également inclus, un autre Itinéraire du chemin. Par exemple maison chemin/
est inclus dans tous les sentiers, alors il doit avoirexact
mot-clé pour la différencier des autres chemins qui commencent avec/
. La raison en est également semblable à/functions
chemin. Si vous souhaitez utiliser une autre voie de chemin comme/functions-detail
ou/functions/open-door
qui comprend/functions
en elle, alors vous devez utiliserexact
pour la/functions
route.