Rumah > hujung hadapan web > tutorial js > React Router V6: Panduan Pemula '

React Router V6: Panduan Pemula '

尊渡假赌尊渡假赌尊渡假赌
Lepaskan: 2025-02-08 11:33:11
asal
455 orang telah melayarinya

React Router v6: A Beginner's Guide

Tutorial ini menyediakan panduan komprehensif untuk React Router V6, perpustakaan penghalaan utama untuk aplikasi React. Ketahui cara menguruskan URL dan navigasi dengan cekap dalam projek React anda.

Titik pembelajaran utama:

  • Menguasai React Router V6: Panduan ini merangkumi asas -asas untuk menubuhkan dan menggunakan Router React V6 untuk navigasi dan pengurusan URL yang lancar dalam aplikasi React anda.
  • navigasi dan rendering laluan: Ketahui cara membuat laluan dinamik dan bersarang menggunakan komponen teras seperti , <routes></routes>, dan <route></route>, termasuk penggunaan parameter laluan untuk routing fleksibel. <link>
  • Teknik Routing Advanced: meneroka konsep lanjutan seperti laluan yang dilindungi, navigasi programatik dengan , dan peningkatan terbaru dalam reaksi router v6.4, membolehkan anda membina penyelesaian penghalaan yang canggih untuk aplikasi reaksi moden untuk aplikasi reaksi moden untuk aplikasi reaksi moden . useNavigate

Pengenalan:

React Excels di Bangunan Aplikasi Web Dinamik dengan Pelbagai Paparan (Halaman). Tidak seperti aplikasi multi-halaman tradisional, navigasi tidak boleh memuatkan semula keseluruhan halaman. Sebaliknya, pandangan harus dilakukan dengan lancar dalam halaman yang ada. React Router mencapai ini secara deklaratif, memastikan pengalaman pengguna yang lancar. Pengguna mengharapkan:

    URL unik untuk setiap pandangan:
  • Membenarkan penanda buku (mis., ). www.example.com/products butang belakang/ke hadapan berfungsi:
  • navigasi penyemak imbas standard harus berfungsi seperti yang diharapkan.
  • URL untuk pandangan bersarang:
  • menyokong struktur dinamik, bersarang (mis.,
  • ). example.com/products/shoes/101 React Router's Declarative Pendekatan Memudahkan Routing Dengan Menentukan Struktur Laluan yang Diinginkan:
Komponen

boleh diletakkan di mana -mana di dalam struktur aplikasi anda. Kesederhanaan komponen seperti
<Route path="/about" element={<About />} />
Salin selepas log masuk
Salin selepas log masuk
,

, dan API Router React lain menjadikan laluan mudah dilaksanakan. <Route> <Route> <Link> Nota penting:

React Router adalah perpustakaan pihak ketiga yang dikekalkan oleh perisian remix, bukan produk Facebook/Meta rasmi.

Gambaran Keseluruhan:

Tutorial ini merangkumi:

Menyediakan React dan React Router menggunakan NPM.

    konsep penghalaan asas.
  1. Routing bersarang.
  2. Routing bersarang dinamik dengan parameter laluan.
  3. Melaksanakan laluan yang dilindungi.
  4. Kod projek lengkap tersedia di GitHub (pautan yang akan dimasukkan di sini).

Menyediakan Router React:

Anda perlu dipasang Node.js. Jika tidak, muat turun dari laman web rasmi Node.js. Pertimbangkan menggunakan pengurus versi untuk pengurusan Node.js yang lebih mudah. NPM (Pengurus Pakej Node) dibundel dengan Node.js. Sahkan pemasangan:

<Route path="/about" element={<About />} />
Salin selepas log masuk
Salin selepas log masuk
Buat projek React baru menggunakan Create React App:

node -v
npm -v
Salin selepas log masuk
Pasang React Router Dom:

npx create-react-app react-router-demo
cd react-router-demo
Salin selepas log masuk
Mulakan pelayan pembangunan:

npm install react-router-dom
Salin selepas log masuk
aplikasi React anda dengan Router React kini berjalan di

. http://localhost:3000/

React Asas Router:

kami akan membuat aplikasi dengan tiga pandangan: rumah, kategori, dan produk.

komponen penghala

Balut komponen aplikasi utama anda dengan penghala:

atau BrowserRouter. HashRouter (menggunakan API Sejarah HTML5) biasanya lebih disukai untuk URL bersih: BrowserRouter

npm start
Salin selepas log masuk
Objek Sejarah

Setiap penghala mencipta objek sejarah yang menguruskan timbunan navigasi. Perubahan ke lokasi pencetus semula.

(Hook) menyediakan fungsi useNavigate untuk navigasi programatik. navigate

Komponen pautan dan laluan

membuat UI jika lokasi sepadan dengan laluan. <Route> Menyediakan navigasi tanpa reloads halaman. <Link>

UPDATE

: App.js

// src/index.js
import { BrowserRouter } from 'react-router-dom';
// ...
root.render(
  <React.StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </React.StrictMode>
);
Salin selepas log masuk
Ini menetapkan navigasi dan penghalaan asas.

Routing bersarang:

Laluan sarang dengan meletakkan

komponen dalam komponen yang lain. Ini mencerminkan struktur URL bersarang. <Route> <Route> Ubah suai

:

App.js

Buat
import { Link, Route, Routes } from 'react-router-dom';
// ... component definitions for Home, Categories, Products ...
export default function App() {
  return (
    <div>
      <nav>
        <ul>
          <li><Link to="/">Home</Link></li>
          <li><Link to="/categories">Categories</Link></li>
          <li><Link to="/products">Products</Link></li>
        </ul>
      </nav>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/categories" element={<Categories />} />
        <Route path="/products" element={<Products />} />
      </Routes>
    </div>
  );
}
Salin selepas log masuk
:

Categories.js

komponen
import { Link, Route, Routes } from 'react-router-dom';
import { Categories, Desktops, Laptops } from './Categories'; // Import nested route components

// ... other components ...

export default function App() {
  return (
    <div>
      {/* ... navigation ... */}
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/categories" element={<Categories />}>
          <Route path="desktops" element={<Desktops />} />
          <Route path="laptops" element={<Laptops />} />
        </Route>
        <Route path="/products/*" element={<Products />} /> {/* Note the trailing * */}
      </Routes>
    </div>
  );
}
Salin selepas log masuk
membuat laluan kanak -kanak dalam laluan induk.

<Outlet>

Routing bersarang dinamik:

Gunakan parameter laluan untuk membuat laluan dinamik. Tambah trailing

ke laluan induk untuk membolehkan laluan kanak -kanak. Gunakan

untuk mengakses parameter. * useParams UPDATE

:

Products.js

parameter
import { Link, Outlet } from 'react-router-dom';

export const Categories = () => (
  <div>
    <h2>Categories</h2>
    <nav>
      <ul>
        <li><Link to="desktops">Desktops</Link></li>
        <li><Link to="laptops">Laptops</Link></li>
      </ul>
    </nav>
    <Outlet />
  </div>
);

export const Desktops = () => <h3>Desktop PC Page</h3>;
export const Laptops = () => <h3>Laptops Page</h3>;
Salin selepas log masuk
diakses dalam komponen

menggunakan :productId. Product useParams

melindungi laluan:

Gunakan

untuk pengalihan programatik dan buat komponen

tersuai. useNavigate PrivateRoute Buat

:

PrivateRoute.js

Tambah komponen
// ... (import statements and productData) ...

const Products = () => (
  <div>
    <h2>Products</h2>
    <ul> {/* ... linkList (generated from productData) ... */} </ul>
    <Routes>
      <Route path=":productId" element={<Product data={productData} />} />
      <Route index element={<p>Please select a product.</p>} />
    </Routes>
  </div>
);

// ... Product component ...
Salin selepas log masuk
dan mengintegrasikan

ke Login untuk melindungi laluan PrivateRoute. Ingatlah pertimbangan keselamatan yang disebut dalam respons asal. App.js /admin

React Router v6.4 dan seterusnya:

React Router v6.4 Memperkenalkan pemuatan data dan mutasi API (diilhamkan oleh remix). API ini memudahkan pengambilan data dan pengurusan dalam laluan menggunakan pemuat dan tindakan. Bahagian ini memerlukan penjelasan yang berasingan dan lebih terperinci.

Ringkasan:

Tutorial ini memberikan gambaran menyeluruh mengenai React Router V6, yang meliputi konsep penghalaan asas dan maju. Ingatlah untuk berunding dengan dokumentasi Router React rasmi untuk maklumat dan butiran yang paling terkini.

Atas ialah kandungan terperinci React Router V6: Panduan Pemula '. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan