window.pipedriveLeadboosterConfig = { base : 'leadbooster-chat.pipedrive.com', companyId : 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version : 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster existe déjà') } 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 conseils et astuces en React - The Codest
The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2022-05-09
Développement de logiciels

7 conseils et astuces dans React

The Codest

Mohamed El Amine DADDOU

React Développeur

Vous cherchez des moyens d'améliorer votre code React ? Cet article contient des conseils et des astuces que tout développeur React devrait connaître. Plongeons-y !

Utiliser TypeScript

Qu'il s'agisse de react ou d'autres bibliothèques, l'utilisation de Typescript sera d'une grande aide pour garder votre code Organisé. Comparons les éléments suivants Javascript vs Typescript traitant des types d'accessoires.

import PropTypes from 'prop-types'

function UserCard({ utilisateur }) {
return

{prénom.utilisateur}, {nom.utilisateur}

}

UserCard.propTypes = {
user : PropTypes.shape({
firstname : PropTypes.string.isRequired,
nom : 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 : Chaîne !
lastname : Chaîne !
...
}

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

{prénom.utilisateur}, {nom.utilisateur}

}

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

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

Imaginez que vous ayez tous vos schémas de données sous forme d'interfaces en un seul endroit et que vous les réutilisiez dans tout le reste de votre code. Cela vous permettra non seulement d'éviter les fautes de frappe, mais aussi, si vous souhaitez modifier le schéma, de ne le faire qu'à un seul endroit.

En outre, de nombreuses bibliothèques javascript bien connues migrent vers Typescript, par exemple : AdonisJS

Séparer les éléments de présentation et les éléments de contenu

La séparation des composants de présentation et de conteneur rend notre code plus facile à tester et à raisonner.

Éléments de présentation sont concernés par l'aspect des choses. Il reçoit son données et comportement des composants parents.

Composants du conteneur sont concernés par comment les choses fonctionnent. Ils fournissent les données et comportement à des éléments de présentation ou à d'autres éléments du conteneur.

Cette approche nous permet de réutiliser les mêmes composants de présentation avec des données et des comportements différents. En outre, elle rend notre code plus propre et beaucoup plus facile à tester.

Regardez l'exemple suivant avec le composant utilisateur qui est utilisé avec différents conteneurs qui fournissent des données et des comportements différents.

function BuyerContainer() {
return
}

function SellerContainer() {
return
}

function UserComponent({ name, onClick }) {
return

}

Utilisez les crochets React et les composants fonctionnels Les composants fonctionnels "appelés auparavant composants sans état" ne sont plus sans état. Grâce aux crochets React, vous pouvez désormais utiliser le crochetState pour stocker l'état dans un composant fonctionnel, ou même utiliser le cycle de vie du composant à l'aide de useEffect. Les composants fonctionnels sont faciles à lire et à tester. Le noyau React dispose d'autres crochets utiles que vous pouvez explorer dans la référence des crochets. Ce qui est étonnant, c'est que vous pouvez également définir vos propres crochets. Dans l'exemple suivant, nous avons créé un hook react personnalisé appelé useDebounce. Il est utilisé pour limiter les appels à l'API d'autocomplétion lorsque le texte saisi change.

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 fonction SearchComponent()
const fetchAutoComplete = useDebounce((e) => {
      // API Fetch (optionnel)
}, 1000) // 1 sec

return (

{...}
)
}

En outre, les crochets React remplacent avantageusement les composants d'ordre supérieur (HoC). Styled Component Styled Component est une bibliothèque permettant l'introduction de CSS dynamiques au niveau des composants, tout en profitant des avantages d'ES. Il rend vos composants plus prévisibles et réutilisables. Ne perdez plus de temps à chercher le bon nom de classe pour un élément tout en essayant d'éviter d'utiliser une classe existante. Avec les composants stylisés, vous vous assurez que vos styles sont appliqués au composant et que les noms de classe sont générés automatiquement à l'étape de la construction. De plus, il n'a jamais été aussi facile de créer des CSS dynamiques. Vos styles seront générés en fonction des props passés au composant. Dans l'exemple suivant, le style de la div dépend à la fois de l'accessoire défini et du thème global.

const Wrapper = styled.div`

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

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

Le dernier point concernant les composants stylisés est qu'ils améliorent les performances en ne chargeant pas les styles inutiles des composants inutilisés. Slot Fill Library Imaginons que vous ayez défini une mise en page pour votre application react, puis que vous souhaitiez ajouter un widget dans la barre latérale uniquement pour une page spécifique. Si vous n'avez pas envisagé ce cas dès le début, cela peut nécessiter une énorme modification de la mise en page. Mais en utilisant une bibliothèque comme ‣ vous pouvez simplement définir un Slot dans la Sidebar. De cette façon, vous éviterez de passer des drapeaux tout au long de l'arbre des composants pour accéder à la barre latérale. Le comportement est similaire à celui des portails React, ce qui est également une excellente solution pour des cas tels que les modales, les infobulles...

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

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

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

{enfants}

const HomePage = () =>

une page sans Widjet
const DashboardPage = () =>

une page avec Widjet

Composants d'ordre supérieur Même si les crochets React remplacent les HOC dans la plupart des cas. Les HoCs restent un excellent choix pour dissimuler la complexité des composants, comme la fourniture de plusieurs accessoires aux composants de page ou le rendu conditionnel (routes privées, état de chargement...). L'exemple suivant illustre comment nous pouvons encapsuler la complexité des routes privées et des accessoires communs de page dans des HoCs réutilisables appliqués à toutes les pages de l'application. Gardez à l'esprit que la plupart des HoCs peuvent être remplacés par des Hooks React et que nous pouvons par erreur remplacer des props par des HoCs composés. N'utilisez donc les HoC que lorsque cela est nécessaire pour que les composants de la page soient plus propres.

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
Page de profil
}
export default withPrivateRoute(withPageProps(ProfilePage))

Limites d'erreur Les limites d'erreur sont des composants de classe qui attrapent toutes les erreurs/exceptions lancées au niveau des enfants. Lorsqu'elles sont déclarées au niveau supérieur, elles vous permettent de gérer correctement les erreurs en affichant un message d'erreur et en enregistrant l'erreur dans un outil de surveillance de la plateforme tel que Sentry. De cette façon, vous serez le premier à détecter les erreurs et à essayer de les corriger avant qu'elles n'aient un impact sur l'expérience de l'utilisateur. Note : Les ErrorBoundaries doivent être déclarés dans les classes qui ne supportent pas les composants fonctionnels.

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
Quelque chose s'est mal passé ! Contacter l'administrateur
;
}
return this.props.children ;

}
}

Articles connexes

Développement de logiciels

Outils Javascript en action

Découvrez quelques outils de récupération JavaScript pour améliorer votre jeu de programmation. En savoir plus sur ESLint, Prettier et Husky !

The Codest
Reda Salmi React Développeur
Solutions pour les entreprises et les grandes entreprises

10 entreprises de Dubaï à surveiller en 2020

Dubaï est le cœur des Émirats arabes unis, avec son marché de plus en plus prospère d'entreprises mondiales et de start-ups prometteuses. Nombre d'entre elles peuvent se vanter de leur succès international et de leurs produits remarquables....

Thon Pinar

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

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