მარშრუტები React Router-ში

მარშრუტები (Routes) არის React Router-ზე აგებული აპლიკაციის ყველაზე მნიშვნელოვანი ნაწილი. განვიხილოთ წინა გაკვეთილიდან აღებული კოდის ნაწყვეტი:

main.jsxconst router = createBrowserRouter([
  {
    path: '/',
    element: <div>Hello Router!</div>,
  },
]);

მაშ, ობიექტის path და element თვისებები, რომლებსაც ვაწვდიდით ფუნქციას როუტერის შექმნისას, სწორედ Route ობიექტის თვისებებია. სინამდვილეში, ამ ობიექტს უამრავი თვისება აქვს, მათი ნახვა შესაძლებელია ოფიციალურ დოკუმენტაციაში. მომავალში, ზოგიერთი მათგანი გამოგვადგება:

jsxinterface RouteObject {
  path?: string;
  index?: boolean;
  children?: React.ReactNode;
  caseSensitive?: boolean;
  id?: string;
  loader?: LoaderFunction;
  action?: ActionFunction;
  element?: React.ReactNode | null;
  Component?: React.ComponentType | null;
  errorElement?: React.ReactNode | null;
  ErrorBoundary?: React.ComponentType | null;
  handle?: RouteObject["handle"];
  shouldRevalidate?: ShouldRevalidateFunction;
  lazy?: LazyRouteFunction<RouteObject>;
}

შესაძლებელი იყო ალტერნატიული JSX სტილის გამოყენება და თვისებების დაწერა Route კომპონენტისთვის პროფებად, მაშინ ჩვენი კოდის ნაწყვეტი ასე გამოიყურებოდა:

main.jsxconst router = createBrowserRouter(
  createRoutesFromElements(
    <Route
      path = '/'
      element = {<div>Hello Router!</div>}
    />
  )
);

და, რა თქმა უნდა, იმპორტში კიდევ რამდენიმე ხაზის დამატება დაგვჭირდებოდა:

main.jsximport {
  createRoutesFromElements,
  createBrowserRouter,
  RouterProvider,
  Route,
} from 'react-router-dom';

გაკვეთილში მოყვანილი ორივე სტილი თანაბრად მართებულია. ჩვენ შემდგომში პირველ ვარიანტს ვიცავთ.

Задание 1

აიღეთ აპლიკაცია, რომელიც თქვენ შექმენით წინა გაკვეთილების დავალებებში. სცადეთ გადაწეროთ როუტერის შექმნის კოდის ნაწყვეტი (ძველი კოდი ჯერ დააკომენტარეთ), გაკვეთილში მოცემული ალტერნატიული JSX სინტაქსის გამოყენებით. დარწმუნდით, რომ აპლიკაცია მუშაობს.

Задание 2

დააბრუნეთ ადგილზე მთელი ძველი კოდი, ახალი კი ამოიღეთ. დარწმუნდით, რომ აპლიკაცია მუშაობს.