Trasy v React Router

Trasy (Routes) jsou nejdůležitější částí aplikace na React Router. Podívejme se na kousek kódu z předchozí lekce:

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

Takže, vlastnosti objektu path a element, které jsme předali do funkce při vytváření routeru, jsou vlastnosti objektu Route. Ve skutečnosti, tento objekt má mnoho vlastností, jejich seznam najdete v oficiální dokumentaci. V budoucnu se nám budou hodit některé z nich:

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

Mohli bychom použít alternativní JSX styl a zapsat vlastnosti jako props pro komponentu Route, pak by náš kousek kódu vypadal takto:

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

A samozřejmě by bylo nutné přidat ještě pár řádků do importu:

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

Oba styly uvedené v lekci jsou rovnocenné. My se v budoucnu budeme držet první varianty.

Задание 1

Vezměte aplikaci, kterou jste vytvořili v úkolech k předchozím lekcím. Zkuste přepsat kousek kódu pro vytvoření routeru (starý zatím zakomentujte), pomocí alternativního JSX syntaxe, uvedeného v lekci. Ujistěte se, že aplikace funguje.

Задание 2

Vraťte na místo veškerý starý kód, a nový odstraňte. Ujistěte se, že aplikace funguje.