React Router V5 introduit un mécanisme de crochet puissant, fournissant quatre crochets de routage pratiques, simplifiant la gestion du routage. Cet article commencera rapidement avec le nouveau mode de React Router V5, introduisant d'abord le nouveau mode de rendu de routage, puis se plongeant dans l'utilisation de chaque crochet.
Router React avant V5
// Rendez l'itinéraire et obtenez les attributs de l'itinéraire<route component="{Home}" path="/"></route> // passe des propriétés supplémentaires<route path="/" render="{({" match><profile match="{match}" mine="{true}"></profile> } /></route>
Lorsque vous utilisez la syntaxe component
, les propriétés de routage ( match
, location
et history
) sont implicitement transmises au composant. Mais si vous devez transmettre des propriétés supplémentaires, vous devez utiliser render
à la place. Il convient de noter que l'ajout de fonctions en ligne à la syntaxe component
entraînera le remontage du composant chaque fois qu'il est rendu.
Routeur de réact après V5
<route path="/"><home></home></route>
Home
ne reçoit plus implicitement les propriétés de routage. Cependant, vous pouvez ajouter toutes les propriétés supplémentaires au composant Home
sans modifier Route
lui-même. Évitez le problème des composants de remontage à chaque fois qu'ils rendent, ce qui est une conception d'API plus concise et plus efficace.
Étant donné que les propriétés de routage ne sont plus implicitement passées, comment accéder match
, history
ou location
? Dois-je envelopper tous les composants avec withRouter
? C'est là que le crochet entre en jeu.
Notez que le crochet a été introduit dans React 16.8, donc React doit être utilisé.
Crochet de useHistory
- Donne accès aux attributs
history
dans le routeur React. - Pointe vers
history
utilisées par l'itinéraire. - Il est principalement utilisé pour le routage programmatique via des fonctions, telles que
push
,replace
, etc.
import {usehistory} de 'react-router-dom'; fonction home () { const History = useHistory (); return <button onclick="{()">history.push ('/ profil')}> profil</button> ; }
crochet useLocation
- Donne accès à
location
dans le routeur React. - Semblable à la
window.location
du navigateur.Location, mais il représente l'état de routage et l'emplacement et peut être accessible n'importe où. - Principalement utilisé pour accéder aux paramètres de requête ou terminer les chaînes de routage.
import {uselocation} de 'react-router-dom'; Profil de fonction () { const localisation = uselocation (); useEFFECT (() => { const CurrentPath = location.pathName; const searchParams = new UrlSearchParams (location.search); // ... utilisez CurrentPath et SearchParams }, [emplacement]); Retour<p> Profil</p> ; }
Étant donné que location
est immuable, useEffect
appelle la fonction chaque fois que l'itinéraire change, ce qui est idéal pour manipuler les paramètres de recherche ou les chemins actuels.
Hook useParams
- Donne accès aux paramètres dans l'URL.
- Cette fonctionnalité n'était auparavant mise en œuvre que via
match.params
.
import {useParams, Route} à partir de 'react-Router-Dom'; Profil de fonction () { const {name} = useParams (); Retour<p> Profil de {nom}</p> ; } Function Dashboard () { Retour ( <div> <nav> <link to="{`/profile/ann`}">Profil d'Ann </nav> <main> <route path="/profile/:name"><profile></profile></route> </main> </div> )); }
useRouteMatch
- Fournit un accès aux objets
match
. - S'il n'y a pas d'argument, la correspondance la plus proche du composant ou de son composant parent est renvoyée.
- Principalement utilisé pour construire des chemins imbriqués.
Importer {useroutematch, route} à partir de 'react-Router-Dom'; fonction auth () { const Match = useroutematch (); Retour ( <div> <route path="{`${match.url}/login`}"><login></login></route> <route path="{`${match.url}/register`}"><register></register></route> </div> )); }
useRouteMatch
peut également être utilisé pour accéder aux objets match
sans rendre Route
en passant par les paramètres location
.
Par exemple, supposons que vous deviez rendre votre profil dans /profile
, et si l'URL contient le nom de la personne ( /profile/dan
ou /profile/ann
), rendez le profil des autres. Si vous n'utilisez pas de crochet, vous devez écrire un Switch
, énumérer deux itinéraires et personnaliser avec les accessoires. Mais maintenant, l'utilisation de Hook peut faire ceci:
Importer {Route, Browserrouter comme routeur, link, useroutEmatch} à partir de 'React-Router-Dom'; Profil de fonction () { const Match = useroutematch ('/ profil /: name'); revanche?<p> Profil de Match.params.name}</p> :<p> Mon propre profil</p> ; } Exporter la fonction par défaut App () { Retour ( <router> <nav> <link to="/profile">Mon profil <br> <link to="{`/profile/ann`}">Profil d'Ann </nav> <route path="/profile"><profile></profile></route> </router> )); }
Vous pouvez également transmettre toutes les propriétés Route
comme exact
ou sensitive
en tant qu'objets à useRouteMatch
.
Résumer
Le crochet et Route
explicite eux-mêmes ont des avantages cachés. Ces crochets aident à éviter une grande partie de la confusion et de la complexité qui ont émergé dans les premiers modes, à réduire les erreurs humaines, à rendre le code de routage plus facile à maintenir et plus facile à mettre à niveau vers la nouvelle version du routeur React.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Le fait que le positionnement de l'ancrage évite l'ordre de source HTML est si CSS-y parce qu'il est une autre séparation des préoccupations entre le contenu et la présentation.

L'article traite de la propriété CSS Margin, en particulier "Marge: 40px 100px 120px 80px", son application et les effets sur la mise en page de la page Web.

L'article traite des propriétés des frontières CSS, en se concentrant sur la personnalisation, les meilleures pratiques et la réactivité. Argument principal: Border-Radius est le plus efficace pour les conceptions réactives.

L'article traite des propriétés de fond CSS, de leurs utilisations dans l'amélioration de la conception du site Web et des erreurs courantes à éviter. L'accent est mis sur la conception réactive en utilisant la taille de l'arrière-plan.

L'article traite des couleurs CSS HSL, de leur utilisation dans la conception Web et des avantages par rapport à RVB. L'objectif principal est d'améliorer la conception et l'accessibilité grâce à une manipulation intuitive des couleurs.

L'article traite de l'utilisation des commentaires dans CSS, détaillant les syntaxes de commentaires à ligne unique et multi-lignes. Il soutient que les commentaires améliorent la lisibilité, la maintenabilité et la collaboration du code, mais peuvent avoir un impact sur les performances du site Web si elles ne sont pas gérées correctement.

L'article traite des sélecteurs CSS, de leurs types et de l'utilisation pour le style des éléments HTML. Il compare les sélecteurs ID et classe et aborde les problèmes de performances avec des sélecteurs complexes.

L'article traite de la priorité CSS, en se concentrant sur les styles en ligne ayant la plus grande spécificité. Il explique les niveaux de spécificité, les méthodes de remplacement et les outils de débogage pour gérer les conflits CSS.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel
