0Pricing
React Academy · Lekcja

Wzorce komunikacji między komponentami siostrzanymi

Koordynuj dwa komponenty siostrzane za pomocą stanu wspólnego rodzica i propsów z funkcjami zwrotnymi

Wzorce komunikacji między komponentami siostrzanymi to bezpłatna lekcja React Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Wprowadzenie

W tej lekcji zaimplementują Państwo komunikację między komponentami równorzędnymi w React, koordynując dwa komponenty za pomocą stanu współdzielonego przez rodzica i propsów zawierających funkcje zwrotne.

Komponenty równorzędne nie mogą komunikować się bezpośrednio

W React dane przepływają w dół za pośrednictwem propsów. Dwa komponenty równorzędne nie mają bezpośredniego połączenia. Cała komunikacja między nimi odbywa się przez wspólnego rodzica.

Wzorzec: współdzielony stan w komponencie rodzica

Rodzic przechowuje współdzieloną wartość w stanie i przekazuje ją do obu komponentów równorzędnych: jeden otrzymuje ją jako dane (czytelnik), a drugi otrzymuje funkcję zwrotną umożliwiającą jej zmianę (modyfikator).
function Parent() {
  const [selected, setSelected] = useState(null);
  return (
    <>
      <Picker onSelect={setSelected} />
      <Detail item={selected} />
    </>
  );
}

Komponenty równorzędne: czytelnik i modyfikator

Komponent równorzędny pełniący rolę modyfikatora (Picker) wywołuje funkcję zwrotną rodzica, gdy użytkownik dokona wyboru. Komponent równorzędny pełniący rolę czytelnika (Detail) otrzymuje wynikową wartość jako prop. Żaden z tych komponentów nie wie o istnieniu drugiego.
function Picker({ onSelect }) {
  return <button onClick={() => onSelect('item-1')}>Pick item 1</button>;
}

function Detail({ item }) {
  return <p>Selected: {item}</p>;
}

Komunikacja dwukierunkowa

Oba komponenty równorzędne mogą jednocześnie pełnić rolę czytelników i modyfikatorów. Każdy otrzymuje bieżącą wartość ORAZ funkcję zwrotną `onChange`. Zmiana dokonana przez dowolny komponent aktualizuje współdzielony stan rodzica, który następnie przepływa z powrotem do obu komponentów.

Przykład zsynchronizowanych pól formularza

Suwak i pole liczbowe sterują tą samą wartością. Oba otrzymują od rodzica wartość i funkcję `onChange`. Zmiana w dowolnym komponencie automatycznie aktualizuje drugi.
function VolumeControl() {
  const [vol, setVol] = useState(50);
  return (
    <>
      <input type="range" value={vol} onChange={e => setVol(+e.target.value)} />
      <input type="number" value={vol} onChange={e => setVol(+e.target.value)} />
    </>
  );
}

Unikanie antywzorca magistrali zdarzeń

Należy unikać używania globalnego emitera zdarzeń (EventEmitter/PubSub) do komunikacji między komponentami równorzędnymi w React. Omija to przepływ danych Reacta, przez co stan staje się niewidoczny, a debugowanie trudne.

Gdy komponenty równorzędne są od siebie odległe

Jeśli komponenty równorzędne są głęboko zagnieżdżone w różnych gałęziach drzewa, podnoszenie stanu aż do ich wspólnego przodka powoduje nadmierny prop drilling. W takiej sytuacji właściwym rozwiązaniem jest Context lub biblioteka do zarządzania stanem.

Utrzymywanie niezależności komponentów równorzędnych

Żaden z komponentów równorzędnych nie powinien importować drugiego ani odwoływać się do niego. Koordynacją zajmuje się rodzic. Taka niezależność ułatwia zastąpienie jednego komponentu bez wpływu na drugi.

Testowanie komunikacji między komponentami równorzędnymi

Należy testować komponent rodzica: zasymulować działanie w komponencie równorzędnym pełniącym rolę modyfikatora (za pośrednictwem interfejsu rodzica) i sprawdzić, czy komponent pełniący rolę czytelnika wyświetla prawidłową wartość. Rodzic jest jednostką koordynacji, którą można testować.

Szybkie sprawdzenie

W jaki sposób dwa równorzędne komponenty React komunikują się ze sobą?

Podsumowanie

Komponenty równorzędne należy koordynować za pośrednictwem wspólnego rodzica: rodzic przechowuje współdzielony stan, przekazuje dane czytelnikom oraz funkcje zwrotne modyfikatorom. Żaden z tych komponentów nie musi wiedzieć o istnieniu drugiego.

Następnie

Następna lekcja: **Wybór właściwego miejsca przechowywania stanu** — zastosują Państwo schemat podejmowania decyzji dotyczący stanu lokalnego, podniesionego lub globalnego.

Często zadawane pytania

Czy lekcja „Wzorce komunikacji między komponentami siostrzanymi” jest bezpłatna?

Tak — pełny tekst „Wzorce komunikacji między komponentami siostrzanymi” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wzorce komunikacji między komponentami siostrzanymi”?

Koordynuj dwa komponenty siostrzane za pomocą stanu wspólnego rodzica i propsów z funkcjami zwrotnymi Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Wzorce komunikacji między komponentami siostrzanymi”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podnoszenie stanu: zasady i przykłady
  2. Prop drilling: kiedy szkodzi, a kiedy jest w porządku
  3. Wzorce komunikacji między komponentami siostrzanymi
  4. Wybór właściwego miejsca przechowywania stanu
← Powrót do React Academy