L'extension de React.js composants

L'une des choses que j'apprécie le plus sur Backbone.js est la façon simple et élégante de l'héritage fonctionne. Je commence à m'attaquer à Réagir, et ne peut pas vraiment trouver quelque chose à réagir qui ressemble à ce Squelette de code

var Vehicle = Backbone.View.extend({
    methodA: function() { //... }
    methodB: function() { //... }
    methodC: function() { //... }
});

var Airplane = Vehicle.extend({
    methodC: function() {
        //Overwrite methodC from super
    }
});

À réagir, nous ont mixin, et à l'aide de ceux que nous avons pu obtenir assez proche de l'exemple ci-dessus, si nous allions comme ce

var vehicleMethods = {
    methodA: function() { //... }
    methodB: function() { //... }
}

var Vehicle = React.createClass({
    mixins: [vehicleMethods]
    methodC: function() { 
        //Define method C for vehicle
    }
});

var Airplane = React.createClass({
    mixins: [vehicleMethods]
    methodC: function() {
        //Define method C again for airplane
    }
});

C'est moins répétitif que de définir les mêmes choses, encore et encore, mais il ne semble pas être aussi souple comme l'épine Dorsale façon. Par exemple, j'obtiens un message d'erreur si j'essaie de redéfinir/remplacer une méthode qui existe dans l'un de mes mixin. En plus de cela, la React.js plus de code pour moi d'écrire.

Il y a quelques incroyablement intelligent trucs à réagir, et il se sent comme ce n'est plus le cas à moi de ne pas obtenir de la manière de bien faire, qu'il se sent comme une fonctionnalité manquante à partir de Réagir.

Tous les pointeurs sont grandement appréciés.

  • Je trouve la composition suivante approche tout à fait intéressante. C'est l'abandon de la vanille mixin: medium.com/@dan_abramov/...
  • Ce serait bien si ce qui Réagir la communauté décide d'utiliser pour l'encapsulation/réutilisation de code serait distincte de la Réagir cadre. Il peut donc être utilisé à l'extérieur de Réagir, et donc qu'il n'y a plus de choix au sein de Réagir. Vers le bas avec les monolithes!
InformationsquelleAutor Ahrengot | 2014-09-08