window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = finestra if (w.LeadBooster) { console.warn('LeadBooster esiste già') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() 7 suggerimenti e trucchi in React - The Codest
The Codest
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Industrie
    • Fintech e banche
    • E-commerce
    • Adtech
    • Tecnologia della salute
    • Produzione
    • Logistica
    • Automotive
    • IOT
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
Freccia indietro TORNA INDIETRO
2022-05-09
Sviluppo di software

7 Suggerimenti e trucchi in React

The Codest

Mohamed El Amine DADDOU

Sviluppatore React

Cercate modi per migliorare il vostro codice React? Questo articolo contiene suggerimenti e trucchi che ogni sviluppatore React dovrebbe conoscere. Immergiamoci!

Utilizzare TypeScript

Sia che si parli di react o di altre librerie, l'uso di Typescript aiuterà moltissimo nel tentativo di mantenere il vostro codice organizzato. confrontiamo quanto segue Javascript contro Typescript che tratta i tipi di oggetti.

importare PropTypes da "prop-types".

function UserCard({utente }) {
restituisce

{nome.utente}, {cognome.utente}

}

UserCard.propTypes = {
utente: PropTypes.shape({
firstname: PropTypes.string.isRequired,
cognome: PropTypes.string.isRequired
...
})
}

function UserList({utenti }) {
restituire

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

}

UserList.propTypes = {
utenti: PropTypes.arrayOf(PropTypes.shape({
firstname: PropTypes.string.isRequired,
cognome: PropTypes.string.isRequired
...
}))
}
interfaccia Utente {
nome: Stringa!
cognome: Stringa!
...
}

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

{nome.utente}, {cognome.utente}

}

function UserList({utenti }: {utenti: User[] }) {
restituisce

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

Immaginate di avere tutti i vostri schemi di dati come interfacce in un unico posto e di riutilizzarli in tutto il resto del codice. Questo non solo vi aiuterà a evitare errori di battitura, ma anche, nel caso in cui vogliate cambiare lo schema, a modificarlo in un unico punto.

Inoltre, molte note librerie javascript stanno migrando verso Typescript. es: AdonisJS

Componenti di presentazione e contenitori separati

La separazione dei componenti Presentational e Container rende il nostro codice più facile da testare e da analizzare.

Componenti di presentazione si occupano di come appaiono le cose. Riceve il suo dati e comportamento dai componenti genitori.

Componenti del contenitore si occupano di come funzionano le cose. Forniscono il dati e comportamento a componenti di presentazione o altri contenitori.

Questo approccio ci consente di riutilizzare gli stessi componenti di presentazione con dati e comportamenti diversi. Inoltre, rende il nostro codice più pulito e molto più facile da testare.

Verificate il seguente esempio con User Component, utilizzato con diversi contenitori che forniscono dati e comportamenti diversi.

function BuyerContainer() {
return
}

function SellerContainer() {
return
}

function UserComponent({ nome, onClick }) {
return

}

Usare gli hook React e i componenti funzionali I componenti funzionali, prima chiamati componenti stateless, non sono più stateless. Grazie agli hook React, ora è possibile utilizzare l'hook useState per memorizzare lo stato in un componente funzionale o anche utilizzare il ciclo di vita del componente con useEffect. I componenti funzionali sono facili da leggere e da testare. React Core ha altri utili ganci che si possono esplorare nella sezione Hooks Reference. La cosa sorprendente è che si possono anche definire ganci personalizzati. Nell'esempio seguente, abbiamo creato un hook personalizzato di react chiamato useDebounce. Che viene utilizzato per limitare le chiamate all'API di completamento automatico quando il testo inserito cambia.

importare { useEffect } da 'react';
importare { debounce } da 'lodash';
Esportazione della funzione predefinita useDebounce( fn, delay = 500 ) {
const debounced = useMemoOne( () => debounce( fn, delay ), [
fn,
ritardo,
] );
useEffect( () => () => debounced.cancel(), [ debounced ] );
restituire debounced;
}
esportazione della funzione predefinita SearchComponent()
const fetchAutoComplete = useDebounce((e) => {
      // Fetch API (opzionale)
}, 1000) // 1 sec

return (

{...}
)
}

Inoltre, i ganci React sono un ottimo sostituto dei componenti di ordine superiore (HoC). Styled Component Styled Component è una libreria che consente l'introduzione di CSS dinamico a livello di componente, sfruttando i vantaggi di ES. Rende i componenti più prevedibili e riutilizzabili. Dimenticatevi di perdere troppo tempo a cercare il nome della classe giusta per un elemento, evitando di usarne una già esistente. Con Styled Components, gli stili sono assegnati al componente e i nomi delle classi sono generati automaticamente in fase di creazione. Inoltre, non è mai stato così facile creare CSS dinamico. Gli stili saranno generati in base agli oggetti di scena passati al componente. Nell'esempio seguente, lo stile del div dipende sia dal prop delineato che dal tema globale.

const Wrapper = styled.div`

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

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

L'ultimo aspetto dei componenti con stile è che migliorano le prestazioni, evitando di caricare stili non necessari di componenti non utilizzati. Libreria di riempimento degli slot Se si è definito un layout per la propria applicazione react, si vuole aggiungere un widget nella barra laterale solo per una pagina specifica. Se non si è considerato questo caso fin dall'inizio, può richiedere un'enorme modifica del layout. Ma usando una libreria come ‣ si può semplicemente definire uno slot nella barra laterale. In questo modo si evita di passare flag lungo tutta la struttura dei componenti per accedere alla barra laterale. Ha un comportamento simile a quello di React Portals, che è anche un'ottima soluzione per casi come Modals, Tooltips...

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

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

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

{children}

const HomePage = () =>

una pagina senza Widjet
const DashboardPage = () =>

una pagina con Widjet

Componenti di ordine superiore Anche se gli hook React sostituiscono gli HOC nella maggior parte dei casi. Gli HoC sono ancora un'ottima scelta per nascondere la complessità dei componenti, come la fornitura di oggetti di scena multipli ai componenti di pagina o il rendering condizionale (rotte private, stato di caricamento...) L'esempio seguente illustra come incapsulare la complessità delle rotte private e degli oggetti di scena comuni della pagina in HoC riutilizzabili applicati a tutte le pagine dell'applicazione. Si tenga presente che la maggior parte degli HoC può essere sostituita dagli hook React e che, per errore, si possono sovrascrivere gli oggetti di scena con gli HoC composti. Pertanto, utilizzare gli HoC solo se necessario per mantenere i componenti della pagina più puliti, altrimenti utilizzare gli hook React.

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
Pagina del profilo
}
export default withPrivateRoute(withPageProps(ProfilePage))

Confini di errore I confini di errore sono componenti di classe che catturano tutti gli errori/eccezioni lanciati a livello di bambini. Se dichiarati al livello superiore, consentono di gestire correttamente gli errori, mostrando un messaggio di errore e registrando l'errore in uno strumento di monitoraggio della piattaforma come Sentry. In questo modo, sarete i primi a cogliere gli errori e a cercare di risolverli prima che abbiano un impatto sull'esperienza dell'utente. Nota: gli ErrorBoundaries devono essere dichiarati in classi che non supportano componenti funzionali.

classe ErrorBoundary estende React.Component {
costruttore(props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError(error) {
return { hasError: true };
}
componentDidCatch(error, errorInfo) {
logErrorToMySentry(error, errorInfo);
}
render() {
se (this.state.hasError) {
return
Qualcosa è andato storto! Contatta Admin
;
}
return this.props.children;

}
}

Articoli correlati

Sviluppo di software

Strumenti Javascript in azione

Scoprite alcuni strumenti di recupero JavaScript per migliorare la vostra programmazione. Scoprite di più su ESLint, Prettier e Husky!

The Codest
Reda Salmi Sviluppatore React
Soluzioni per aziende e scaleup

10 aziende di Dubai da tenere d'occhio nel 2020

Dubai è il cuore degli Emirati Arabi Uniti con il suo mercato sempre più prospero di aziende globali e promettenti startup. Molte possono vantare un successo internazionale e prodotti degni di nota....

Tonno Pinar

Iscrivetevi alla nostra knowledge base e rimanete aggiornati sulle competenze del settore IT.

    Chi siamo

    The Codest - Società internazionale di sviluppo software con centri tecnologici in Polonia.

    Regno Unito - Sede centrale

    • Ufficio 303B, 182-184 High Street North E6 2JA
      Londra, Inghilterra

    Polonia - Poli tecnologici locali

    • Parco uffici Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Ambasciata del cervello, Konstruktorska
      11, 02-673 Varsavia, Polonia

      The Codest

    • Casa
    • Chi siamo
    • Servizi
    • Case Studies
    • Sapere come
    • Carriera
    • Dizionario

      Servizi

    • Consulenza
    • Sviluppo di software
    • Sviluppo backend
    • Sviluppo Frontend
    • Staff Augmentation
    • Sviluppatori backend
    • Ingegneri del cloud
    • Ingegneri dei dati
    • Altro
    • Ingegneri QA

      Risorse

    • Fatti e miti sulla collaborazione con un partner esterno per lo sviluppo di software
    • Dagli Stati Uniti all'Europa: Perché le startup americane decidono di trasferirsi in Europa
    • Confronto tra gli hub di sviluppo Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filippine), Eurasia (Turchia)
    • Quali sono le principali sfide di CTO e CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condizioni di utilizzo del sito web

    Copyright © 2025 di The Codest. Tutti i diritti riservati.

    it_ITItalian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek it_ITItalian