API, Framework, Front-end

Comme vous le savez sûrement, la version 16.3 de React est sortie aux alentours du mois de mars. Dans cet article, nous allons vous parler d’une nouveauté qui fait beaucoup parler d’elle au sein de la communauté React : l’API Context.

Qu’est-ce que c’est et comment ça marche ?

Cette API a un seul but précis : envoyer des propriétés vers vos composants enfants depuis n’importe quels composants parents, sans forcément passer par un intermédiaire.

L’API s’initialise avec la fonction React.createContext qui renvoie un Provider correspondant au composant parent, ainsi qu’un consumer, correspondant au composant enfant. Alors qu’avant il était nécessaire de passer par plusieurs provider pour connecter le consumer au provider souhaité, cette API permet de relier l’enfant directement au parent sans rentrer dans des connexions trop complexes.

const {Provider, Consumer} = React.createContext(defaultValue);

Maintenant que nous avons exposé l’initialisation de la context API, nous allons maintenant nous intéresser à l’initialisation du Provider et du Consumer.

Le Provider

Ce composant est celui situé au plus haut du contexte, voir de l’application. Il a comme particularité d’abonner les Consumers aux changements de contextes. Il peut également être connecté à plusieurs consumers (composants enfants). Sa valeur correspond aux propriétés qui seront diffusées vers les Consumers.

Vous pouvez déclarer un provider de la manière suivante :

 

Le Consumer

Le Consumer est l’élément qui va recevoir la propriété depuis le Provider. Il s’abonne aux changements de contextes. Afin de récupérer les propriétés diffusées par le Provider, le Consumer doit utiliser une fonction en tant qu’enfant pour utiliser les propriétés partagées. Voici un exemple ci dessous.

{value => /* render something based on the context value */}

Exemples d’application

Retrouvez ici un exemple d’application de l’API. Vous trouverez la création d’un contexte, ainsi que l’initialisation d’un provider et d’un consumer (source : reactjs.org).

theme-context.js

See the Pen bKPzXq by Aaron (@leox47) on CodePen.

themed-button.js

See the Pen GGbeKo by Aaron (@leox47) on CodePen.

app.js

See the Pen MXMxgG by Aaron (@leox47) on CodePen.

Nous présentons d’autres articles techniques dédiés à React sur notre blog, n’hésitez pas à nous suivre et à vous abonner à notre page Linkedin.

Partager

Twitter Linkedin

Vous serez peut-être aussi intéressé par :

Crystallize CMS e-commerce

Crystallize, un nouveau type de CMS e-commerce

Que peut apporter Crystallize à un site e-commerce ? En quoi est-il différent des autres CMS ? Dans cet article, nous vous présentons le CMS Crystallize, ses avantages et ses inconvénients dans une utilisation de site web e-commerce.

Créé par deux frères norvégiens Brad et Aleksander Farstad, le CMS e-commerce Crystallize répond aux exigences des CMS actuels, à savoir : avoir la capacité de gérer n’importe quel type de contenu, que ce soit du texte, une image, une vidéo, … indépendamment du support utilisé.

Kendo, une bibliothèque javascript de composants UI

Kendo UI : une bibliothèque javascript de composants UI

Aujourd’hui on va vous parler de Kendo Ui, une bibliothèque Javascript distribuée par la société Télérik.
Si vous ne le savez pas, le kendo est un art martial japonais moderne s’apparentant à de l’escrime, et c’est justement sur cette représentation que s’appuie l’outil dont nous allons vous parler. Non, nous n’allons pas vous parler de sport de compétition, mais bien d’un outil pour vous faire gagner du temps lorsque vous développez une application Web.

miniature de l'article Vue.js

Vue.JS : un framework Javascript facile à prendre en main

Vous êtes un aficionado du HTML, du CSS et du JavaScript ?
Dans ce cas Vue.JS vous sera simple à aborder ! En effet sa courbe d’apprentissage s’avère être progressive, et il n’est pas nécessaire d’avoir déjà travaillé avec Angular ou React, donc si ce n’est pas le cas : don’t worry !
Dans cet article nous verrons les raisons d’utiliser Vue.JS, les éléments qui en font sa singularité face à ses deux principaux concurrents React et Angular, ainsi que quelques fonctions/composants que l’outil propose !

Centre de préférences de confidentialité

    Cookies Fonctionnels

    gdpr[allowed_cookies], gdpr[consent_types], wfvt_2000878799, wordfence_verifiedHuman

    Advertising

    Cookies Satistiques

    _ga, _gat, _gid

    Cookies externes

    PREF, VISITOR_INFO1_LIVE, YSC, GPS, s_gl, CONSENT
    CONSENT, 1P_JAR