Dalam React Router v6, pendekatan untuk mengendalikan ubah hala telah berubah dengan ketara berbanding versi terdahulu. Manakala React Router v5 menggunakan
Di bawah ialah panduan untuk melaksanakan ubah hala dalam React Router v6.
Komponen Navigate digunakan untuk ubah hala deklaratif. Ia biasanya digunakan dalam komponen laluan anda atau mana-mana tempat lain yang anda mahu ubah hala berdasarkan syarat tertentu.
import React from 'react'; import { Routes, Route, Navigate } from 'react-router-dom'; const Home = () => { return <h2>Home Page</h2>; }; const About = () => { return <h2>About Us</h2>; }; const NotFound = () => { return <h2>Page Not Found</h2>; }; const App = () => { return ( <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/old-page" element={<Navigate to="/about" />} /> <Route path="*" element={<NotFound />} /> </Routes> ); }; export default App;
<Navigate to="/new-page" replace={true} />
Kait useNavigate digunakan untuk menavigasi atau mengubah hala secara atur cara dalam komponen React anda. Ia amat berguna apabila anda perlu melakukan ubah hala selepas beberapa tindakan (cth., selepas menyerahkan borang, menyelesaikan tugas atau menyemak beberapa syarat).
import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; const LoginForm = () => { const [username, setUsername] = useState(''); const navigate = useNavigate(); // Hook to handle navigation const handleSubmit = (event) => { event.preventDefault(); // Perform authentication logic here... // Redirect to the dashboard after successful login navigate('/dashboard'); }; return ( <form onSubmit={handleSubmit}> <input type="text" value={username} onChange={(e) => setUsername(e.target.value)} placeholder="Enter Username" /> <button type="submit">Login</button> </form> ); }; export default LoginForm;
navigate('/dashboard', { replace: true });
Kadangkala anda mungkin mahu mengubah hala pengguna secara bersyarat berdasarkan kriteria tertentu, seperti sama ada mereka disahkan atau berdasarkan beberapa logik lain.
import React from 'react'; import { Routes, Route, Navigate } from 'react-router-dom'; const Home = () => { return <h2>Home Page</h2>; }; const About = () => { return <h2>About Us</h2>; }; const NotFound = () => { return <h2>Page Not Found</h2>; }; const App = () => { return ( <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/old-page" element={<Navigate to="/about" />} /> <Route path="*" element={<NotFound />} /> </Routes> ); }; export default App;
Kadangkala anda mungkin mahu mengubah hala pengguna apabila mereka mencapai laluan yang tidak sah atau tidak ditentukan (404 halaman). Dalam React Router v6, anda boleh mengendalikannya menggunakan laluan kad bebas *.
<Navigate to="/new-page" replace={true} />
React Router v6 menyediakan alatan yang berkuasa dan fleksibel untuk mengubah hala pengguna dalam aplikasi React anda. Sama ada anda mahu mengendalikan ubah hala secara deklaratif menggunakan komponen Navigate atau secara pengaturcaraan menggunakan cangkuk useNavigate, React Router menawarkan penyelesaian mudah yang disepadukan dengan lancar dengan logik penghalaan aplikasi anda.
Atas ialah kandungan terperinci Mengendalikan Lencongan dalam vKaedah Penghala React dan Amalan Terbaik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!