Maison >interface Web >js tutoriel >Épisode Naviguer sur les routes avec les Router Knights
Le soleil du matin baignait la planète Codex d'une lueur chaleureuse, mettant en valeur le réseau complexe de routes qui reliaient ses secteurs. Arin était en route pour rencontrer les légendaires Router Knights, les défenseurs chargés de maintenir les routes d'information sécurisées et efficaces. Ces parcours constituaient l'épine dorsale numérique de Planet Codex, guidant les utilisateurs tout au long de leur voyage.
Arin est arrivé au Router Hall, une structure massive avec des entrées voûtées qui pulsaient avec une lumière rythmée. L’atmosphère bourdonnait d’une énergie qui reflétait le flux constant de données.
«Cadet Arin!» appelé Knight Linkus, capitaine des Router Knights. Sa voix était ferme et sa présence respirait la confiance. « Êtes-vous prêt à apprendre l'art de la navigation ? »
Arin hocha la tête, l'anticipation pétillant dans ses yeux.
« Comprendre les itinéraires : structurer la navigation »
Le chevalier Linkus a conduit Arin à la grande salle des cartes de Router Hall, où les chemins lumineux étaient tracés sur une carte numérique. « Le routage, Cadet, est ce qui guide les utilisateurs vers leur destination », a-t-il commencé. "Chaque itinéraire définit un chemin spécifique et garantit l'affichage de la vue correcte."
Il a montré comment les itinéraires étaient structurés :
import { createBrowserRouter, RouterProvider, Outlet } from 'react-router-dom'; function Products() { return ( <div> <h1>Products</h1> <Outlet /> {/* Ensures child routes render correctly */} </div> ); } const router = createBrowserRouter([ { path: "/", element: <Home /> }, { path: "/about", element: <About /> }, { path: "/products", element: <Products />, children: [ { path: "details/:productId", element: <ProductDetails />, }, { path: "reviews", element: <ProductReviews />, }, ], }, ]); function App() { return <RouterProvider router={router} />; }
« Les itinéraires imbriqués garantissent que /products/details/:productId ou /products/reviews sont affichés dans le composant Produits, en maintenant une structure organisée et efficace », a expliqué Linkus.
Arin a imaginé comment ces itinéraires imbriqués rendraient la navigation transparente, permettant aux utilisateurs d'explorer des zones connexes sans quitter le chemin principal.
« Défendre avec les itinéraires protégés »
Le Chevalier Linkus s'est ensuite dirigé vers une section marquée par des chemins sécurisés. « Tous les itinéraires ne sont pas accessibles à tout le monde. Certains doivent être protégés pour empêcher tout accès non autorisé. »
Il a expliqué comment ils géraient ces itinéraires :
import { Navigate } from 'react-router-dom'; function ProtectedRoute({ element, isLoggedIn }) { return isLoggedIn ? element : <Navigate to="/login" />; } const router = createBrowserRouter([ { path: "/dashboard", element: <ProtectedRoute element={<Dashboard />} isLoggedIn={userIsAuthenticated} />, }, ]);
« Les routes protégées protègent nos zones les plus critiques », a-t-il déclaré, « garantissant que seules les personnes disposant d'un accès approprié peuvent continuer. »
« Chargeurs : préparer le voyage »
Le chevalier Linkus a fait signe à un flux lumineux qui représentait des données préchargées. « Avant que les utilisateurs n’arrivent à destination, nous devons nous assurer que tout ce dont ils ont besoin est prêt. C’est le rôle des chargeurs. »
Il a illustré leur utilisation :
const router = createBrowserRouter([ { path: "/products", element: <Products />, loader: async () => { try { const response = await fetch('/api/products'); if (!response.ok) { throw new Error('Data fetch failed'); } return response.json(); } catch (error) { console.error('Loader error:', error); return []; } }, }, ]);
« Les chargeurs agissent comme des éclaireurs », a déclaré Linkus. "Ils préparent le chemin pour que les usagers ne rencontrent jamais d'itinéraire vide."
« Actions : gérer les changements en temps réel »
Enfin, le chevalier Linkus a indiqué des chemins avec une énergie pulsée. « Parfois, cadet, les itinéraires doivent permettre des changements. C’est là que les actions entrent en jeu. »
Il a montré un exemple :
import { createBrowserRouter, RouterProvider, Outlet } from 'react-router-dom'; function Products() { return ( <div> <h1>Products</h1> <Outlet /> {/* Ensures child routes render correctly */} </div> ); } const router = createBrowserRouter([ { path: "/", element: <Home /> }, { path: "/about", element: <About /> }, { path: "/products", element: <Products />, children: [ { path: "details/:productId", element: <ProductDetails />, }, { path: "reviews", element: <ProductReviews />, }, ], }, ]); function App() { return <RouterProvider router={router} />; }
« Les actions nous permettent de répondre aux entrées des utilisateurs, comme l'ajout de nouvelles données, directement dans les itinéraires, ce qui permet au Codex de rester réactif », a déclaré Linkus.
« Maîtriser les itinéraires »
À la fin de la séance, Arin a examiné la carte lumineuse, son esprit s'emballant avec une nouvelle compréhension. Le Chevalier Linkus posa une main rassurante sur son épaule.
« Aujourd’hui, vous avez appris à structurer, sécuriser et optimiser les itinéraires. N'oubliez pas que les itinéraires sont plus que des chemins : ils constituent le fondement des parcours des utilisateurs. »
Avec un signe de tête déterminé, Arin quitta le Router Hall, prête à appliquer ses nouvelles connaissances à la défense et au développement de Planet Codex.
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!