Maršrutai React Router

Maršrutai (Routes) yra svarbiausia React Router programos dalis. Panagrinėkime kodo fragmentą iš praeitos pamokos:

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

Taigi, objekto savybės path ir element, kurias perdavėme į funkciją kuriant maršrutizatorių, yra objekto Route savybės. Tiesą sakant, šis objektas turi daug savybių, jas galima rasti oficialioje dokumentacijoje. Ateityje, kai kurios iš jų mums prireiks:

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

Galima būtų pasinaudoti alternatyviu JSX stiliumi ir parašyti savybes kaip props'us komponentui Route, tada mūsų kodo fragmentas atrodytų taip:

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

Ir, žinoma, reikėtų pridėti dar porą eilučių į importą:

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

Abu pamokoje pateikti stiliai yra lygiaverčiai. Mes toliau laikysimės pirmojo varianto.

Задание 1

Paimkite programą, kurią sukūrėte užduotyse ankstesnėse pamokose. Pabandykite perrašyti kodo fragmentą maršrutizatoriaui sukurti (senąjį kol užkomentuokite), naudodami alternatyviąją JSX sintaksę, pateiktą pamokoje. Įsitikinkite, kad programa veikia.

Задание 2

Grąžinkite į vietą visą senąjį kodą, o naująjį pašalinkite. Įsitikinkite, kad programa veikia.