Útvonalak a React Routerben

Az útvonalak (Routes) a React Router alkalmazás legfontosabb részei. Tekintsük át az előző leckéből származó kódrészletet:

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

Nos, a path és a element tulajdonságok, amelyeket átadtunk a függvénynek a router létrehozásakor, éppen a Route objektum tulajdonságai. Valójában ez az objektum számos tulajdonsággal rendelkezik, ezek megtalálhatók a hivatalos dokumentációban. A továbbiakban néhány közülük hasznos lesz számunkra:

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>;
}

Használhattunk volna alternatív JSX stílust is, és írhattuk volna a tulajdonságokat a Route komponens propsaiként, akkor a kódrészletünk így nézne ki:

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

És természetesen kellett volna hozzáadnunk még pár sort az importáláshoz:

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

A leckében bemutatott mindkét stílus egyenértékű. A továbbiakban mi az első változathoz fogjuk tartani magunkat.

Задание 1

Vegyétek azt az alkalmazást, amit az előző leckék feladataihoz készítettetek. Próbáljátok meg átírni a router létrehozásához szükséges kódrészletet (a régit egyelőre tegyétek megjegyzésbe), az alternatív JSX szintaxist használva, amelyet a leckében bemutattak. Győződjetek meg arról, hogy az alkalmazás működik.

Задание 2

Tegyétek vissza a helyére a régi kódot, az újat pedig távolítsátok el. Győződjetek meg arról, hogy az alkalmazás működik.