IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

React Discussion :

Pure component vs statefull


Sujet :

React

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Par défaut Pure component vs statefull
    Bonjour tout le monde,
    la question existentielle qui m'amène à ouvrir ce poste est :
    faut il abandonner les pures composants pour préférer les composants à base de classe.
    Actuellement mon entourage a tendance à prôner les composants statefull avec pour argument qu'ils devraient passer en deprecated.
    De mon point de vu un composant à basse de classe donne un code moins lisible et prend du poids une fois retranscrits par Babel non ?
    Merci à toutes les personnes qui pourraient apporter une réponse définitive à cette question

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Je dirai que c'est l'inverse... notamment avec les hooks.
    https://fr.reactjs.org/docs/hooks-intro.html

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Par défaut
    Merci pour cette réponse éclairée gwyohm.

  4. #4
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Par défaut Rebondissement cause TypeScript
    Pour faire suite à cette question épineuse, fort de la réponse apportée on m’a répondu : si si on utilise prioritairement des class parce que nous avons un sur ensemble TypeScript (#%* de dev back). Est ce que la solution des hooks fait fasse ou dois je oublier mes pure components si cher à ma volonté de rester lisible et minimaliste ?
    Encore merci à toutes personnes qui pourraient me donner un (des) argument(s) solides pour que je puisse utiliser mes pures composants là ou le state n’a pas d’importance.

  5. #5
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Je ne vois pas le rapport.

    Typescript n'impose pas de créer des classes pour faire du react.

    De mon point de vue, écrire une classe c'est plus de lignes de code donc plus long, plus verbeux plus de risque de bug, moins lisible. Si je n'en ai pas besoin, je ne m'e*****e pas.

    Mon analyse (et je suis ravi qu'on m'explique que j'ai tort si c'est argumenté), c'est qu'avec les hooks, le code métier (qui quelque part serait le même en vue en angular, ou autre framework) n'a plus à se retrouver dans un composant react (avant on faisait des HOC, des fonctions d'aide...). Maintenant le code vraiment React sert a faire du templating. En général, pour du templating, je n'ai pas besoin de classe.

    Ceci n'empêche évidemment pas que pour faire vite, pour tester un truc, je peux créer une classe qui étend Component et faire un joli plat de spaghetti, mais je pense que ce n'est pas idéal.

  6. #6
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Une classe c'est un moule à objet, ça sert à définir un modèle.

    Un composant pur c'est une fonction pure. Il ne faut donc surtout pas utiliser de classe dans ce cas de figure.

    Qui dit classe dit state.

    Typescript n'impose pas de créer des classes pour faire du react.
    Ou pour faire quoique ce soit. TypeScript est un superset de JS, pas du Java/C# sur JS. Un tweet du lead dev TypeScript pour t'en convaincre.

Discussions similaires

  1. "component" sur autre base de données
    Par k4eve dans le forum Hibernate
    Réponses: 4
    Dernier message: 12/04/2005, 09h48
  2. Réponses: 2
    Dernier message: 26/04/2004, 13h55
  3. comment acceder a un component lui meme dans un panel
    Par mimosa7 dans le forum Composants
    Réponses: 2
    Dernier message: 16/11/2003, 23h02
  4. [Crystal report] Component
    Par Antichoc dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/04/2003, 16h11
  5. Component not found
    Par Pm dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo