Maintenant que vous comprenez pourquoi les crochets sont ajoutés pour le routage, voyons les crochets en action.
useParamsLe useParamscrochet renvoie un objet contenant des paires clé-valeur des paramètres passés dans une URL dynamique.
Par exemple, supposons que vous ayez un Usercomposant de page qui accepte un idcomme paramètre dans l'URL.
<Route path="/user/:id">
<User />
</Route>
import { useParams } from "react-router-dom";
const User = () => {
const params = useParams();
console.log(params);
return (
// ...
)
}
{
id: 3,
}
import {
// ...
useParams,
} from "react-router-dom";
// /user/:id
const User = () => {
const params = useParams();
return (
<div>
<div>This is the user page</div>
<div>current user Id - {params.id}</div>
</div>
);
};
Les useHistorycrochets renvoient l' historyobjet que le routeur utilise en interne pour gérer les changements de route. L' historyobjet est utilisé pour gérer l'historique des sessions.
Par exemple, vous pouvez utiliser la history.push()méthode pour ajouter une nouvelle entrée à la pile d'historique et naviguer l'utilisateur à partir de la route actuelle :
import {
// ...
useHistory,
} from "react-router-dom";
const User = () => {
const history = useHistory();
const params = useParams();
const handleBack = () => {
history.goBack();
};
const handleNavigation = () => {
history.push("/user/5");
};
return (
<div>
<div>This is the user page</div>
<div>current user Id - {params.id}</div>
<div>
<button onClick={handleBack}>Go Back</button>
</div>
<div>
<button onClick={handleNavigation}>Go To Different User</button>
</div>
</div>
);
};
useLocationLe useLocationHook vous permet d'accéder à l' locationobjet qui représente l'URL active. La valeur de l' locationobjet change chaque fois que l'utilisateur accède à une nouvelle URL.
Le useLocationcrochet peut être pratique lorsque vous devez déclencher un événement chaque fois que l'URL change.
Considérez que vous devez garder une trace des vues sur les pages de profil des utilisateurs. Vous pouvez détecter les changements dans l' locationobjet à l'aide du useEffectcrochet, fourni avec React.
import {
// ...
useLocation,
} from "react-router-dom";
const User = () => {
const history = useHistory();
const params = useParams();
const location = useLocation();
useEffect(() => {
console.log(location.pathname);
// Send request to your server to increment page view count
}, [location]);
const handleBack = () => {
history.goBack();
};
const handleNavigation = () => {
history.push("/user/5");
};
return (
<div>
<div>This is the user page</div>
<div>current user Id - {params.id}</div>
<div>
<button onClick={handleBack}>Go Back</button>
</div>
<div>
<button onClick={handleNavigation}>Go To Different User</button>
</div>
</div>
);
};
Le useRouteMatchcrochet fait correspondre l'URL active avec un chemin donné, de la même manière que le Routecomposant fonctionne. C'est un Hook très intéressant ; vous pouvez vous débarrasser du Routecomposant inutile et accéder à l' matchobjet.
Vous pouvez maintenant changer le chemin dans le composant route de la page utilisateur pour simplement/user :
<Route path="/user/">
<User />
</Route>
import {
// ...
useRouteMatch,
} from "react-router-dom";
const User = () => {
const history = useHistory();
const routeMatch = useRouteMatch("/user/:id");
const location = useLocation();
useEffect(() => {
console.log(location);
}, [location]);
const handleBack = () => {
history.goBack();
};
const handleNavigation = () => {
history.push("/user/5");
};
return (
<div>
<div>This is the user page</div>
{routeMatch ? (
<div>user Id - {routeMatch.params.id}</div>
) : (
<div>You are viewing your profile</div>
)}
<div>
<button onClick={handleBack}>Go Back</button>
</div>
<div>
<button onClick={handleNavigation}>Go To Different User</button>
</div>
</div>
);
};
Les crochets sont un excellent ajout à l'écosystème React. Maintenant que vous avez vu du code sur la gestion du routage avec Hooks, vous êtes prêt à tirer pleinement parti de ce qu'ils ont à offrir.
Jusqu'à la prochaine fois, restez en sécurité et continuez à coder avec React Hooks !
Introduction Un accident vasculaire cérébral est une urgence médicale qui peut frapper n'importe qui à tout moment. Elle survient lorsque le flux sanguin vers une partie du cerveau est perturbé, entraînant une perte soudaine de la fonction cérébrale.
Cette semaine, j'ai reçu un e-mail d'un membre de la liste de diffusion quotidienne. Ils voulaient savoir : Quelles ressources consultez-vous quotidiennement, hebdomadairement et mensuellement ? Grande question ! Je suis heureux d'essayer de partager quelques idées sur mon flux de travail et les principales ressources que j'utilise.
Ce qui est vieux est à nouveau nouveau et ce qui était autrefois la chose brillante et scintillante semble maintenant terne. Je ne parle pas du retour des jeans JNCO parmi les enfants cool du centre-ville avec d'autres modes de la fin des années 1990.
Quand tu grandis, on a tendance à te dire que le monde est comme il est et que ta vie est juste de vivre ta vie à l'intérieur du monde, sans jamais risquer ta vie, juste suivre un chemin tracé et mourir à la fin, et essayer de ne pas cogner trop les murs. Mais c'est une vie très limitée.
Dans le monde hyper-connecté d'aujourd'hui, les systèmes médiatiques jouent un rôle central dans la formation de l'opinion publique et, par conséquent, dans la prise de décision démocratique. Dans son analyse approfondie de l'économie politique de la communication, le chercheur Robert McChesney remet en question la sagesse conventionnelle et présente ce qu'il appelle les « cinq vérités » sur les médias.
Il était minuit passé lorsque Hayden a ramené Katie à son dortoir universitaire après leur soirée ensemble. Elle avait un cours tôt le matin et n'avait plus de vêtements de rechange après être restée avec lui la nuit précédente.