The Codest
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Pramonės šakos
    • Fintech ir bankininkystė
    • E-commerce
    • Adtech
    • Sveikatos technologijos
    • Gamyba
    • Logistika
    • Automobiliai
    • IOT
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
Atgal rodyklė GRĮŽTI ATGAL
2022-05-09
Programinės įrangos kūrimas

7 patarimai ir gudrybės naudojant React

The Codest

Mohamed El Amine DADDOU

React kūrėjas

Ieškote būdų, kaip patobulinti savo React kodą? Šiame straipsnyje pateikiami patarimai ir gudrybės, kuriuos turėtų žinoti kiekvienas React kūrėjas. Pasinerkime!

Naudokite TypeScript

Nesvarbu, ar kalbame tik apie reaguoti arba kitas bibliotekas, naudodami Mašinraštis labai padės išlaikyti jūsų kodas organizuota. palyginkime šiuos dalykus Javascript vs Typescript, susijęs su rekvizitų tipais.

importuoti PropTypes iš 'prop-types'

funkcija UserCard({ user }) {
return

{user.firstname}, {user.lastname}

}

UserCard.propTypes = {
user: PropTypes.shape({
vardas: PropTypes.string.isRequired,
pavardė: PropTypes.string.isRequired
...
})
}

funkcija UserList({ users }) {
return

{users.map((user) => )}

}

UserList.propTypes = {
users: PropTypes.arrayOf(PropTypes.shape({
vardas: PropTypes.string.isRequired,
pavardė: PropTypes.string.isRequired
...
}))
}
sąsaja Vartotojas {
vardas: String!
pavardė: String!
...
}

funkcija UserCard({ user }: { user: User }) {
return

{user.firstname}, {user.lastname}

}

funkcija UserList({ users }: { users: User[] }) {
return

{users.map((user) => )}

Įsivaizduokite, kad visus savo duomenys schemas kaip sąsajas vienoje vietoje ir pakartotinai jas naudoti visame likusiame kode. Tai ne tik padės išvengti rašymo klaidų, bet ir tuo atveju, jei norėsite pakeisti schemą, turėtumėte ją keisti tik vienoje vietoje.

Be to, daugelis gerai žinomų javascript bibliotekų pereina prie Typescript, pvz: AdonisJS

Atskirti pristatymo ir konteinerių komponentus

Atskyrus pristatomąsias ir talpyklos sudedamąsias dalis, mūsų kodą lengviau testuoti ir pagrįsti.

Pristatomieji komponentai yra susiję su kaip viskas atrodo. Jis gauna savo duomenys ir elgsena iš pirminių komponentų.

Konteinerių sudedamosios dalys yra susiję su kaip viskas veikia. Jie teikia duomenys ir elgsena į pristatomąsias ar kitas konteinerio sudedamąsias dalis.

Taikant šį metodą galima mus pakartotinai naudoti tuos pačius pateikimo komponentus su skirtingais duomenimis ir elgsena. Be to, dėl to mūsų kodas tampa švaresnis ir jį daug lengviau testuoti.

Patikrinkite toliau pateiktą pavyzdį su User Component, kuris naudojamas su skirtingais konteineriais, teikiančiais skirtingus duomenis ir elgseną.

funkcija BuyerContainer() {
return
}

funkcija SellerContainer() {
return
}

funkcija UserComponent({ name, onClick }) {
return

}

Naudokite React kabliukus ir funkcinius komponentus Funkciniai komponentai, kurie anksčiau buvo vadinami komponentais be būsenos, nebėra be būsenos. React kabliukų dėka dabar galite naudotiState kabliuką, kad išsaugotumėte būseną funkciniame komponente, arba net naudoti komponento gyvavimo ciklą naudodami useEffect. Funkcinius komponentus lengva skaityti ir testuoti. React Core turi ir kitų naudingų kabliukų, kuriuos galite išnagrinėti "Hooks Reference". Nuostabu tai, kad taip pat galite apibrėžti savo pasirinktinius kabliukus. Toliau pateiktame pavyzdyje sukūrėme pasirinktinį react kabliuką, pavadintą useDebounce. Kuris naudojamas apriboti automatinio užbaigimo API skambučius, kai įvesties tekstas pasikeičia.

importuoti { useEffect } iš 'react';
importuoti { debounce } iš 'lodash';
export default function useDebounce( fn, delay = 500 ) {
const debounced = useMemoOne( () => debounce( fn, delay ), [
fn,
delay,
] );
useEffect( () => () => () => debounced.cancel(), [ debounced ] );
return debounced;
}
export default funkcija SearchComponent()
const fetchAutoComplete = useDebounce((e) => {
      // Fetch API (neprivaloma)
}, 1000) // 1 sek.

return (

{...}
)
}

Be to, React kabliukai puikiai pakeičia aukštesnės eilės komponentus (angl. Higher-Order Components, HoCs). Styled Component Styled Component - tai biblioteka, leidžianti komponentų lygmeniu įdiegti dinaminį CSS, kartu pasinaudojant ES privalumais. Ji padaro jūsų komponentus labiau nuspėjamus ir pakartotinai naudojamus. Pamirškite, kad gaištate per daug laiko ieškodami tinkamo elemento klasės pavadinimo ir kartu bandydami išvengti jau esamos klasės pavadinimo naudojimo. Naudodami "Styled Components" užtikrinkite, kad jūsų stiliai būtų priskirti komponentui ir automatiškai generuojami klasių pavadinimai kūrimo etape. Be to, dar niekada nebuvo taip paprasta kurti dinaminius CSS. jūsų stiliai bus generuojami pagal komponentui perduotus rekvizitus. Toliau pateiktame pavyzdyje div stilius priklauso ir nuo išdėstytos atramos, ir nuo globalios temos.

const Wrapper = styled.div`

  border: ${props => props.outlined ? '1px solid' : 'none'};

    fonas: ${props => props.theme.light ? 'black' : 'white'}

Paskutinis punktas apie stilizuotus komponentus yra tai, kad jis pagerina našumą, nes neįkelia nereikalingų nenaudojamų komponentų stilių. Slotų užpildymo biblioteka Tarkime, nustatėte savo react programos maketą. tada norite pridėti valdiklį į šoninę juostą tik tam tikrame puslapyje. Jei šio atvejo nenumatėte iš pat pradžių Tai gali pareikalauti didelių maketo pakeitimų. Tačiau naudodami tokią biblioteką kaip ‣ Galite tiesiog apibrėžti šoninės juostos lizdą. Tada užpildykite tą lizdą valdikliais, skirtais tik konkretiems puslapiams. taip išvengsite vėliavėlių perdavimo visame komponentų medyje, kad pasiektumėte šoninę juostą. Tai panašus elgesys kaip ir React Portalai, kurie taip pat yra puikus sprendimas tokiems atvejams kaip Modals, Tooltips...

importuoti { Slot, Fill, Provider } iš 'react-slot-fill';
const Sidebar = (rekvizitai) =>
 
export default Įrankių juosta;
Sidebar.Item = (props) =>

{ props.label }
const Widget = () =>
[

];
const Page = ({children}) =>

{children}

const HomePage = () =>

Puslapis be Widjet
const DashboardPage = () =>

puslapis su Widjet

Aukštesnės eilės komponentai Net jei React kabliukai daugeliu atvejų pakeičia HOC. HoC vis dar yra puikus pasirinkimas, kai reikia paslėpti komponentų sudėtingumą, pavyzdžiui, puslapio komponentų daugybinių rekvizitų pateikimą arba sąlyginį atvaizdavimą (privatūs maršrutai, įkrovimo būsena...). Toliau pateiktas pavyzdys rodo, kaip galima uždaromi tiek privačių maršrutų, tiek bendrų puslapio rekvizitų sudėtingumą į daugkartinio naudojimo HoC, taikomus visiems taikomosios programos puslapiams. Atminkite, kad daugumą HoCs atvejų galima pakeisti React kabliukais. ir kad per klaidą galime pakeisti rekvizitus sudarytais HoCs. Todėl HoCs naudokite tik tada, kai tai būtina, kad puslapio komponentai būtų švaresni. priešingu atveju naudokite React Hooks.

funkcija withPrivateRoute(Component) {
...
grąžinti funkciją PrivateRoute(props) {
if (!userConnected) return ;
return ;
};
}
funkcija withPageProps(Component) {
...
return function privateRoute(props) {
return ;
};
}
funkcija ProfilePage({ navigation, currentPath, currentUser}) {
return
Profilio puslapis
}
export default withPrivateRoute(withPageProps(ProfilePage))

Klaidų ribos Klaidų ribos - tai klasės komponentai, kurie sugauna visas vaikų lygmenyje išmetamas klaidas ir (arba) išimtis. Deklaravus aukščiausiu lygiu, galima tinkamai tvarkyti klaidas, rodant klaidos pranešimą ir registruojant klaidą platformos stebėjimo įrankiu, pavyzdžiui, "Sentry". Tokiu būdu būsite pirmieji, kaip užfiksuoti klaidas, ir bandysite jas ištaisyti, kol jos nepaveikė naudotojo patirties. Pastaba: ErrorBoundaries turėtų būti deklaruojamos klasėje jos nepalaiko funkcinių komponentų.

klasė ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError(error) {
return { hasError: true };
}
componentDidCatch(error, errorInfo) {
logErrorToMySentry(error, errorInfo);
}
render() {
if (this.state.hasError) {
return
Kažkas nepavyko ! Susisiekite su administratoriumi
;
}
return this.props.children;

}
}

Susiję straipsniai

Programinės įrangos kūrimas

Veiksmingi Javascript įrankiai

Atraskite keletą JavaScript paieškos įrankių, kurie padės patobulinti jūsų programavimo žaidimą. Sužinokite daugiau apie ESLint, Prettier ir Husky!

The Codest
Reda Salmi React kūrėjas

Prenumeruokite mūsų žinių bazę ir būkite nuolat informuoti apie IT sektoriaus patirtį.

    Apie mus

    The Codest - tarptautinė programinės įrangos kūrimo bendrovė, turinti technologijų centrus Lenkijoje.

    Jungtinė Karalystė - būstinė

    • 303B biuras, 182-184 High Street North E6 2JA
      Londonas, Anglija

    Lenkija - vietiniai technologijų centrai

    • Fabryczna biurų parkas, Aleja
      Pokoju 18, 31-564 Krokuva
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšuva, Lenkija

      The Codest

    • Pagrindinis
    • Apie mus
    • Paslaugos
    • Case Studies
    • Sužinokite, kaip
    • Karjera
    • Žodynas

      Paslaugos

    • Patariamoji tarnyba
    • Programinės įrangos kūrimas
    • Galinės dalies kūrimas
    • Priekinės dalies kūrimas
    • Staff Augmentation
    • Atgalinės versijos kūrėjai
    • Debesų inžinieriai
    • Duomenų inžinieriai
    • Kita
    • QA inžinieriai

      Ištekliai

    • Faktai ir mitai apie bendradarbiavimą su išoriniu programinės įrangos kūrimo partneriu
    • Iš JAV į Europą: Kodėl Amerikos startuoliai nusprendžia persikelti į Europą?
    • Technikos plėtros centrų užsienyje palyginimas: Tech Offshore Europa (Lenkija), ASEAN (Filipinai), Eurazija (Turkija)
    • Kokie yra svarbiausi CTO ir CIO iššūkiai?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autorinės teisės © 2026 The Codest. Visos teisės saugomos.

    lt_LTLithuanian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian