Korzystanie z routera React Part-2

React Router Hooks

Teraz, kiedy rozumiesz, dlaczego hooki są dodawane do routingu, zobaczmy, jak hooki działają.

useParams

Hook useParamszwraca obiekt zawierający pary klucz-wartość przekazanych parametrów w dynamicznym adresie URL.

Załóżmy na przykład, że masz Userskładnik strony, który akceptuje idjako parametr w adresie URL.

<Route path="/user/:id">
  <User />
</Route>

import { useParams } from "react-router-dom";

const User = () => {
  const params = useParams();
console.log(params);
return (
    // ...
  )
}

{
  id: 3,
}

import {
  // ...
  useParams,
} from "react-router-dom";
// /user/:id
const User = () => {
  const params = useParams();
return (
    <div>
      <div>This is the user page</div>
      <div>current user Id - {params.id}</div>
    </div>
  );
};

Hooki useHistoryzwracają historyobiekt, którego router używa wewnętrznie do obsługi zmian trasy. Obiekt historysłuży do zarządzania historią sesji.

Na przykład możesz użyć history.push()metody, aby dodać nowy wpis do stosu historii i nawigować użytkownika z bieżącej trasy:

import {
  // ...
  useHistory,
} from "react-router-dom";
const User = () => {
  const history = useHistory();
  const params = useParams();
const handleBack = () => {
    history.goBack();
  };
const handleNavigation = () => {
    history.push("/user/5");
  };
return (
    <div>
      <div>This is the user page</div>
      <div>current user Id - {params.id}</div>
      <div>
        <button onClick={handleBack}>Go Back</button>
      </div>
      <div>
        <button onClick={handleNavigation}>Go To Different User</button>
      </div>
    </div>
  );
};

useLocation

useLocationHook umożliwia dostęp do obiektu location, który reprezentuje aktywny adres URL. Wartość locationobiektu zmienia się za każdym razem, gdy użytkownik przechodzi do nowego adresu URL.
Hook może być wygodny , useLocationgdy musisz wyzwolić dowolne zdarzenie za każdym razem, gdy zmieni się adres URL.

Weź pod uwagę, że musisz śledzić wyświetlenia na stronach profilów użytkowników. Możesz wykryć zmiany w locationobiekcie za pomocą useEffecthooka, który jest dostarczany z Reactem.

import {
  // ...
  useLocation,
} from "react-router-dom";
const User = () => {
  const history = useHistory();
  const params = useParams();
  const location = useLocation();
useEffect(() => {
    console.log(location.pathname);
    // Send request to your server to increment page view count
  }, [location]);
const handleBack = () => {
    history.goBack();
  };
const handleNavigation = () => {
    history.push("/user/5");
  };
return (
    <div>
      <div>This is the user page</div>
      <div>current user Id - {params.id}</div>
      <div>
        <button onClick={handleBack}>Go Back</button>
      </div>
      <div>
        <button onClick={handleNavigation}>Go To Different User</button>
      </div>
    </div>
  );
};

Hook dopasowuje aktywny adres URL do useRouteMatchpodanej ścieżki, podobnie jak Routedziała komponent. To bardzo ciekawy hak; możesz pozbyć się niepotrzebnego Routekomponentu i uzyskać dostęp do matchobiektu.

Możesz teraz zmienić ścieżkę w komponencie trasy strony użytkownika na po prostu /user:

<Route path="/user/">
  <User />
</Route>

import {
  // ...
  useRouteMatch,
} from "react-router-dom";
const User = () => {
  const history = useHistory();
const routeMatch = useRouteMatch("/user/:id");
  const location = useLocation();
useEffect(() => {
    console.log(location);
  }, [location]);
const handleBack = () => {
    history.goBack();
  };
const handleNavigation = () => {
    history.push("/user/5");
  };
return (
    <div>
      <div>This is the user page</div>
      {routeMatch ? (
        <div>user Id - {routeMatch.params.id}</div>
      ) : (
        <div>You are viewing your profile</div>
      )}
<div>
        <button onClick={handleBack}>Go Back</button>
      </div>
      <div>
        <button onClick={handleNavigation}>Go To Different User</button>
      </div>
    </div>
  );
};

Wniosek

Hooki są świetnym dodatkiem do ekosystemu React. Teraz, gdy znasz już trochę kodu na temat obsługi routingu za pomocą hooków, możesz w pełni wykorzystać to, co mają do zaoferowania.

Do następnego razu zachowaj bezpieczeństwo i kontynuuj programowanie dzięki hakom React!

Suggested posts

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Wstęp Udar to nagły przypadek medyczny, który może dotknąć każdego w dowolnym momencie. Występuje, gdy przepływ krwi do części mózgu zostaje zakłócony, co prowadzi do nagłej utraty funkcji mózgu.

Moje najczęściej używane zasoby dotyczące kodowania

Moje najczęściej używane zasoby dotyczące kodowania

W tym tygodniu otrzymałem wiadomość e-mail od członka codziennej listy e-mailowej. Chcieli wiedzieć: Jakie zasoby odwiedzasz codziennie, co tydzień i co miesiąc? Świetne pytanie! Cieszę się, że mogę podzielić się spostrzeżeniami na temat mojego przepływu pracy i najlepszych zasobów, z których korzystam.

Related posts

Finansowanie usuwania dwutlenku węgla w RO24

Podział wniosków o środki Carbon180 na różne ścieżki

Finansowanie usuwania dwutlenku węgla w RO24

Autor: Alyson Lee, doradca zarządzający ds. spraw rządowych Coroczny proces przyznawania środków przez rząd federalny ma kluczowe znaczenie dla naszych wysiłków na rzecz sfinansowania usuwania dwutlenku węgla (CDR). Każdego roku Carbon180 przesyła prośby do różnych biur kongresowych, aby pomóc wskazać, gdzie będą płynąć dolary w przyszłym roku.

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

W dzisiejszym dynamicznym i konkurencyjnym świecie kariera odgrywa znaczącą rolę w rozwoju osobistym, stabilności finansowej i ogólnej satysfakcji z życia. Jednak wiele osób wpada w nieustający cykl stagnacji i niezadowolenia, stopniowo marnując swoje życie zawodowe.

Telewizja sieciowa Twitter

Telewizja sieciowa Twitter

To, co stare, jest teraz znowu nowe, a to, co kiedyś było lśniącą, błyszczącą rzeczą, teraz wydaje się nudne. Nie mówię o dżinsach JNCO, które powróciły wśród fajnych dzieciaków w śródmieściu wraz z innymi modami późnych lat 90.

Pierwsza książka dla dzieci o tym, jak się naćpać

Pierwsza książka dla dzieci o tym, jak się naćpać

(Ostrzeżenie - to jest satyra, która ma być radośnie wywrotowa - zdecydowanie nie dla dzieci) Widziałeś, jak twoja mama i tata chowają się w kuchni i palą śmierdzące papierosy. Mówią ci.