Jak udostępnić logikę między komponentami za pomocą niestandardowych haczyków?

Aug 08, 2025

Zostaw wiadomość

Udostępnianie logiki między komponentami jest kluczowym aspektem budowania skalowalnych i możliwych do utrzymania aplikacji React. Jako dostawca haczyków byłem świadkiem mocy niestandardowych haków w osiągnięciu tego celu. W tym poście na blogu zagłębię się, jak udostępniać logikę między komponentami za pomocą niestandardowych haczyków, oferując praktyczne spostrzeżenia i rzeczywiste przykłady świata.

Zrozumienie niestandardowych haczyków

Zanim zbadamy, jak udostępnić logikę, krótko zrozummy, jakie są niestandardowe haczyki. Niestandardowe haczyki to funkcje JavaScript, które zaczynają się od słowa „użyj” i mogą wywoływać inne haczyki. Umożliwiają wyodrębnienie logiki komponentu do funkcji wielokrotnego użytku. Rozważmy na przykład scenariusz, w którym wiele komponentów musi obsłużyć sprawdzanie poprawności wprowadzania formularza. Zamiast duplikować logikę sprawdzania poprawności w każdym komponencie, możemy utworzyć niestandardowy hak.

import {usestate} from'react '; const użyjInputValidation = (inicitialValue = '') => {const [wartość, setValue] = usestate (inicialValue); const [isValid, setisValid] = usestate (true); const handlechange = (e) => {const inputValue = e.target.value; setValue (inputValue); // Przykład prawidłowego sprawdzania poprawności: Sprawdź, czy wejście nie jest puste setisValid (inputValue.trim ()! == ''); }; return {wartość, isValid, Handlechange}; }; Eksportuj domyślny UżyteinputValidation;

W tym niestandardowym haczyku obejmujemy logikę zarządzania państwem i wprowadzeniem wejścia. Każdy komponent, który musi obsłużyć sprawdzanie poprawności wejściowej, może teraz użyć tego haka zamiast implementacji logiki od zera.

Dzielenie się logiką stanową

Jednym z głównych przypadków użycia dla niestandardowych haczyków jest dzielenie się logiką państwową między komponentami. Logika stanowa polega na zarządzaniu stanem w ramach komponentu. Rzućmy okiem, w jaki sposób możemy dzielić się logiką państwową za pomocą niestandardowych haczyków.

Wyobraź sobie, że mamy wiele komponentów, które muszą zarządzać widocznością modelu. Możemy utworzyć niestandardowy hak do obsługi tej logiki.

import {usestate} from'react '; const usemodalvisibility = () => {const [isvisible, setisVisible] = Usestate (false); const showModal = () => {setisVisible (true); }; const hidemodal = () => {setisVisible (false); }; return {Isvisible, showModal, Hidemodal}; }; eksport domyślny Usemodalvisibility;

Teraz każdy komponent, który musi zarządzać widocznością modelu, może użyć tego niestandardowego haka.

Import reaguj z „react ”; importować Usemodalvisibility z „./usemodalvisibility”; const modalComponent = () => {const {isvisible, showModal, hidemodal} = usemodalvisibility (); return (<div> <button onClick = {showModal}> pokaż modal </przycisk> {isvisible && (<div className = "modal"> <p> treść modalna idzie tutaj </p> <przycisk onClick = {HIDEMODAL}> Zamknij modalne </button> </viv>)} </div>); }; Eksportuj Domyślny ModalComponent;

Korzystając z niestandardowego haka, z powodzeniem podzieliliśmy stanową logikę zarządzania widocznością modatu między komponentami.

Udostępnianie strony - logika efektu

Niestandardowe haczyki są również doskonałe do dzielenia się logiką po stronie efektu. STRONY - Efekty obejmują takie rzeczy, jak pobieranie danych, subskrypcje i manipulacje DOM.

Załóżmy, że mamy wiele komponentów, które muszą pobrać dane z interfejsu API. Możemy utworzyć niestandardowy hak do obsługi logiki pobierania danych.

import {Usestate, Useeffect} from'React '; const singatafetching = (url) => {const [data, setData] = usestate (null); const [Isloading, Setisloading] = Usestate (true); const [error, seterror] = Usestate (null); Useeffect (() => {const fetchData = async () => {try {const response = czekali na fetch (url); if (! response.ok) {wyrzuć nowy błąd („odpowiedź sieciowa nie była ok”);} const result = czekali response.JSON (); setData (wynik);} catch (err) {setError (err); {setSloading);}}; fetchData (); return {data, Isloading, error}; }; Eksportuj domyślny użyteczne Użyte;

Teraz każdy komponent, który musi pobierać dane z interfejsu API, może użyć tego niestandardowego haka.

Import reaguj z „react ”; Import używanyTAfetching z „./usedatafetching”; const dataComponent = () => {const {data, ISLOADING, error} = singatafetching ('https://api.example.com/data'); if (ISLOADING) {return <p> ładowanie ... </p>; } if (error) {return <p> błąd: {error.message} </p>; } return (<Div> {data && <Pre> {json.Stringify (data, null, 2)} </pre>} </iv>); }; Eksportuj domyślny komponent danych;

Praktyczne zastosowania w branży akcesoriów łazienkowych

Jako dostawca haczyków rozumiem znaczenie praktycznych zastosowań. Na przykład w branży akcesoriów łazienkowych możemy użyć niestandardowych haczyków do zarządzania stanem ofert produktów.

Powiedzmy, że mamy komponent, który wyświetla listęHaczyny z akcesoriami łazienkowymii inny element, który wyświetlaZłote haczyki łazienkowe. Możemy utworzyć niestandardowy hak, aby zarządzać filtrowaniem i sortowaniem tych produktów.

new england bathroom accessoriesmatte black bathroom accessory set

import {usestate} from'react '; const UseProductFiltering = (iniationalProducts) => {const [produkty, setProducts] = Usestate (iniationalProducts); const [Filter, setfilter] = Usestate (''); const refilterchange = (e) => {const filterValue = e.target.value; setfilter (FilterValue); const FiltertedProducts = innitialProducts.Filter (produkt => produkt.name.toolowercase (). setProducts (FilteredProducts); }; return {Products, Filter, MiddleFilterChange}; }; Eksportuj domyślny użycie ProductFiltering;

Teraz zarówno ręczniki, jak i złote haczyki łazienkowe mogą używać tego niestandardowego haczyka do zarządzania filtrowaniem produktów.

Wniosek i wezwanie do działania

Podsumowując, niestandardowe haki są potężnym narzędziem do udostępniania logiki między komponentami. Zwiększają ponowne wykorzystanie kodu, zachowując możliwość i zwiększają skalowalne aplikacje React. Jako dostawca haczyków jestem zobowiązany do zapewniania wysokiej jakości rozwiązań do udostępniania logiki w twoich projektach.

Jeśli chcesz dowiedzieć się więcej o tym, w jaki sposób nasze niestandardowe haki mogą przynieść korzyści Twojej firmie lub jeśli chcesz rozpocząć dyskusję na temat zamówień, skontaktuj się. Jesteśmy tutaj, aby pomóc Ci w tworzeniu lepszych aplikacji reagujących z wydajnym udostępnianiem logiki.

Odniesienia

  • React Oficjalna dokumentacja na niestandardowe haczyki
  • „React: Up and Running” Stoyana Stefanova i Eve Porcello

Wyślij zapytanie