(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); 7 ráð og brellur í React - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2022-05-09
Hugbúnaðarþróun

7 ráð og brellur í React

The Codest

Mohamed El Amine DADDOU

React forritari

Ertu að leita að leiðum til að bæta React-kóðann þinn? Þessi grein inniheldur ráð og brellur sem allir React-þróunaraðilar ættu að þekkja. Skulum kafa í efnið!

Hér er tómt.

Notaðu TypeScript

Hvort sem við erum bara að tala um react eða öðrum bókasöfnum, með því að nota Tegundaskjal mun hjálpa svo mikið í viðleitninni til að halda þínum kóði skipulagt. skulum bera saman eftirfarandi JavaScript vs TypeScript við meðhöndlun props-gerða.

import PropTypes from 'prop-types'

function UserCard({ user }) {
return

{user.firstname}, {user.lastname}

}

UserCard.propTypes = {
user: PropTypes.shape({
firstname: PropTypes.string.isRequired,
lastname: PropTypes.string.isRequired...

})
}

function UserList({ users }) {
return

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

}

UserList.propTypes = {
users: PropTypes.arrayOf(PropTypes.shape({
firstname: PropTypes.string.isRequired,
lastname: PropTypes.string.isRequired...

}))
}
interface User {
firstname: String!
lastname: String!...

}

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

{user.firstname}, {user.lastname}

}

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

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

Ímyndaðu þér að hafa allt þitt gögn Skemmtur sem viðmót á einum stað og endurnýta þær í restinni af kóðanum þínum. Þetta mun ekki aðeins hjálpa þér að forðast innsláttarvillur, heldur ef þú vilt breyta skemmatri, þarft þú aðeins að breyta henni á einum stað.

Auk þess eru mörg vel þekkt JavaScript-bókasöfn að flytja yfir í TypeScript. t.d.: AdonisJS

Aðskilja framsýningareiningar og ílátseiningar

Aðskilja framsýningareiningar og ílátseiningar gerir kóðann okkar auðveldari í prófunum og skiljanlegri.

Kynningareiningar varða hvernig hlutirnir líta út. Það fær sitt gögn og hegðun frá foreldrisamhæfingareiningum.

Ílátseiningar varða hvernig hlutirnir virka. Þeir veita gögn og hegðun til kynningareininga eða annarra ílátaþátta.

Með þessari nálgun er hægt að okkur að endurnýta sömu framsetningareiningar með mismunandi gögnum og hegðun. Auk þess gerir það kóðann okkar hreinni og mun auðveldara að prófa.

Skoðaðu eftirfarandi dæmi með notendahluta sem er notaður með mismunandi ílátum sem bjóða upp á mismunandi gögn og hegðun.

function BuyerContainer() {
return 
}

function SellerContainer() {
return 
}

function UserComponent({ name, onClick }) {
return

}

Notaðu React Hooks og virknibúnaði. Virknibúnaður, sem áður var kallaður ástandslausir búnaður, er ekki lengur ástandslaus. Þökk sé React Hooks geturðu nú notað state-hookið til að geyma ástand í virknibúnaði. Eða jafnvel notað lífsferil búnaðarins með useEffect. Functional components eru auðveld í lestri og prófun. React Core inniheldur nokkra aðra gagnlega hooks sem þú getur kannað í Hooks-tilvísuninni. Það sem er magnað er að þú getur líka skilgreint þína eigin hooks. Í eftirfarandi dæmi bjuggum við til sérsniðinn react hook sem kallast useDebounce. Hann er notaður til að takmarka autocomplete. forritaskil kallar þegar inntakstexti breytist.

import { useEffect } from 'react';
import { debounce } from 'lodash';
export default function useDebounce( fn, delay = 500 ) {
const debounced = useMemoOne( () => debounce( fn, delay ), [
fn,
delay,
] );
useEffect( () => () => debounced.cancel(), [ debounced ] );
return debounced;
}
export default function SearchComponent()
const fetchAutoComplete = useDebounce((e) => {
 // Fetch API (valkvætt)
}, 1000) // 1 sekúnda

return (

{...})

}

Auk þess eru React-hakar frábær staðgengill fyrir Higher-Order Components (HoCs). Styled Component Styled Component er bókasafn sem gerir þér kleift að innleiða dýnamískan CSS á íhlutastigi á sama tíma og nýtir kosti ES. Þetta gerir íhlutina þína fyrirsjáanlegri og endurnýtanlegri. Gleymdu því að eyða of miklum tíma í að leita að réttu klasanafninu fyrir þátt á meðan þú reynir að forðast að nota það sem þegar er til. Með Styled Components tryggir þú að stílar þínir séu afmarkaðir við þættinn og að klasanafn sem búin eru til sjálfkrafa í byggingarferlinu séu notuð. Auk þess hefur það aldrei verið auðveldara að búa til dýnamískan CSS. Stílar þínir verða búnir til út frá þeim eiginleikum sem sendir eru til þættisins. Í eftirfarandi dæmi er stíll div-þáttarins bæði háður outlined-eiginleikanum og alþjóðlega þemanu.

const Wrapper = styled.div`

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

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

Síðasti punkturinn um styled-components er sá að það bætir frammistöðu með því að hlaða ekki óþarfa stílum fyrir ónotuð íhluti. Slot Fill Library gerir þér kleift að hafa skilgreint uppsetningu fyrir react-forritið þitt. Síðan viltu bæta við vígildi í hliðarstiku eingöngu fyrir ákveðna síðu. Ef þú taldir ekki með þennan möguleika frá upphafi getur það krafist mikilla breytinga á útlitinu. En með því að nota bókasafn eins og ‣ geturðu einfaldlega skilgreint Slot í Sidebar-inu. Þú fyllir svo það Slot með Widgets eingöngu fyrir ákveðnar síður. Með þessu forðast þú að þurfa að senda flags um allt components-tréð til að nálgast Sidebar-ið. Hún hefur svipaða hegðun og React Portals, sem er einnig frábær lausn fyrir tilvik eins og Modals, Tooltips…

import { Slot, Fill, Provider } from 'react-slot-fill';
const Sidebar = (props) =>
 
export default Toolbar;
Sidebar.Item = (props) =>

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

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

{children}

const HomePage = () =>

a Page without Widjet
const DashboardPage = () =>

a Page with Widjet

Hærri stigs íhlutir Jafnvel þó React-krókar komi í stað HOC-a í flestum tilvikum. HOC-ar eru samt frábær kostur til að fela flækjustig í íhlutum, til dæmis við að útvega marga eiginleika fyrir síðuíhluti eða skilyrt útlit (einkaleiðir, hleðslustaða o.s.frv.). Eftirfarandi dæmi sýnir hvernig við getum falið flækjustigi bæði einkaleiða og sameiginlegra eiginleika síðunnar í endurnýtanlegum HOC-um sem beitt er á allar síður forritsins. Mundu að í flestum tilfellum er hægt að skipta út HoCs fyrir React Hooks og að við getum óvart yfirskrifað eiginleika í samsettum HoCs. Notið því HoCs aðeins þegar nauðsyn krefur til að halda síðuþáttum hreinum; annars notið React Hooks.

function withPrivateRoute(Component) {...

return function PrivateRoute(props) {
if (!userConnected) return ;
return ;
};
}
function withPageProps(Component) {
...
return function privateRoute(props) {
return ;
};
}
function ProfilePage({ navigation, currentPath, currentUser}) {
return
Profile Page
}
export default withPrivateRoute(withPageProps(ProfilePage))

Error Boundaries Error boundaries eru class-hlutar sem grípa allar villur/undantekningar sem kastað er í barnastigi. Þegar þær eru lýstar á efsta stigi leyfa þær þér að framkvæma rétta villumeðhöndlun með því að birta villuskilaboð og skrá villuna í vettvangseftirlitsverkfæri eins og Sentry. Á þennan hátt verðurðu fyrstur til að greina villur og reyna að laga þær áður en þær hafa áhrif á notendaupplifun. Athugið: ErrorBoundaries ætti að lýsa í class; þær styðja ekki functional components.

class 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
Eitthvað fór úrskeiðis! Hafðu samband við stjórnanda
;
}
return this.props.children;

}
}

Tengdar greinar

Hugbúnaðarþróun

Javascript-verkfæri í aðgerð

Uppgötvaðu nokkur JavaScript-tólin til að bæta forritunarhæfileika þína. Kynntu þér nánar ESLint, Prettier og Husky!

The Codest
Reda Salmi React forritari

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    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 is_ISIcelandic