À l'aide de mixin vs composants pour la réutilisation de code dans Facebook Réagir

Je commence à utiliser Facebook Réagir dans un projet Backbone et jusqu'à présent, cela se passe très bien.

Cependant, j'ai remarqué un certain nombre de chevauchements qui se glissent dans mon Réagir code.

Par exemple, j'ai plusieurs forme-comme les widgets avec des états comme la INITIAL, SENDING et SENT. Lorsqu'un bouton est enfoncé, le formulaire doit être validé, une demande est faite, et puis l'état est mis à jour. L'état est conservé à l'intérieur de Réagir this.state de cours, avec des valeurs de champ.

Si elles ont été vues Dorsale, j'aurais extrait d'une classe de base appelée FormView mais mon impression était que de Réagir n'endosse ni ne prend en charge sous-classement de partager vue logique (corrigez-moi si je me trompe).

J'ai vu deux approches de réutilisation de code à Réagir:

Suis-je correct que mixin et les contenants sont privilégiées à l'héritage Réagir? Est-ce une volonté délibérée de décision de conception? Serait-il plus logique d'utiliser un mixin ou un composant conteneur pour mon “widget” exemple du deuxième paragraphe?

Voici un résumé avec FeedbackWidget et JoinWidget dans leur état actuel. Ils ont une structure similaire, semblable beginSend méthode et les deux ont besoin d'une aide à la validation (pas encore).

  • Une mise à jour de cette réaction sont à avoir des doutes sur l'appui mixin dans un long avenir, parce que quand votre ex componentDidMount sont tout juste la magie de travail de réagir en faisant des choses compliquées alors qu'ils ne sont pas écraser les uns les autres.. parce que mixin sont très simpliste et ne conviennent pas pour but
  • Je n'ai pas beaucoup d'expérience avec de Réagir, mais vous pouvez définir votre propre mixin avec des fonctions qui ne se chevauchent pas avec l'espace de noms réels de Réagir objets. ensuite, il suffit d'appeler la "superclasse"/composition des fonctions de l'objet à partir de votre typique Réagir composants fonctions. ensuite, il n'y a pas de chevauchement entre Réagir fonctions héréditaires et des fonctions. cela permet de réduire un peu passe-partout, mais les limites de la magie qui se passe et le rend plus facile pour Réagir à opérer derrière les coulisses. est-ce vraiment si difficile de concevoir? J'espère que je me suis fait clair.
  • Mixin ne mourra jamais, parce que vous pouvez toujours faire des DIY mixin. Réagir juste de ne pas avoir de support "natif" pour mixin mais vous pouvez toujours faire mixin vous-même natif de la JS.
InformationsquelleAutor Dan Abramov | 2014-02-18