web-dev-qa-db-fra.com

Flux + React vs Backbone + React

Quels sont les avantages de Flux + React par rapport à Backbone + React. Existe-t-il des différences de performances en plus de la facilité de développement de code pour une base de code extrêmement complexe?.

Que faire si nous avons une relation 1: 1 entre le modèle et une vue de réaction dans une application qui utilise Backbone + React?

38
Student

Flux est un modèle d'architecte permettant de créer l'application React. Vous pouvez donc utiliser des modèles et des collections Backbone dans vos magasins pour extraire et stocker des données. 

Et si vous voulez utiliser uniquement la fonction Virtual DOM de React, vous n'avez pas besoin d'utiliser react.js. Il existe de nombreuses bibliothèques qui ajoutent la fonctionnalité Virtual DOM à votre application ( https://github.com/Matt-Esch/virtual-dom ).

Ma recommandation: si vous voulez utiliser le modèle de flux, je vous recommande fortement d'utiliser http://facebook.github.io/immutable-js/ (peut être associé à http: // ampersandjs. com/ ; n'oubliez pas de définir votre fonction de synchronisation personnalisée si vous construisez une application isomorphique). Fondamentalement, il n’ya aucun avantage à utiliser des modèles de réseau principal avec React (le réseau principal est lourd, il nécessite un trait de soulignement, ce qui est lent; j’utilise https://lodash.com/ à la place).

43
Vetrenko Maxim

Les magasins IMHO Flux ne sont pas incompatibles avec les modèles/collections Backbone . Vous pouvez probablement utiliser les collections Backbone en tant que magasins Flux, tant que vous les intégrez au répartiteur Flux et que vous leur permettez d'émettre un événement pour déclencher un rendu.

Je ne suis tout simplement pas sûr que les modèles Backbone soient conçus comme des structures de données immuables, ce qui rend plus difficile l'optimisation du rendu par React.

Je dirais aussi que je n'ai jamais vraiment trouvé toutes ces méthodes de modèles/collections Backbone vraiment utiles. Dans une architecture Flux, les demandes d'API auraient tendance à être déclenchées par les créateurs d'actions et non par les magasins directement, ce qui permettrait à plusieurs magasins d'écouter le même achèvement de demande.

Où la demande ajax doit-elle être faite dans l'application Flux?

5
Sebastien Lorber

La collection de modèles de Backbone est modifiable alors que Rea repose sur un thème, l’immutabilité. Ainsi, Techniquement, l’utilisation de Backbone + React est un anti-motif. J'ai utilisé à la fois react + backbone et react + flux. Je préférerais certainement réagir + flux sur les autres.

2
Jason Bourne

Une bonne chose à propos de React est qu’il est agnostique - vous pouvez l’utiliser avec des modèles et des collections Backbone sans problème. 

Flux est une architecture suggérée, mais je pense que le modèle diverge tellement pour MVC qu’en fin de compte, il ne vaut pas la peine d’essayer de les utiliser tous les deux. Utilisez React with Flux OR Réagissez avec les modèles et les collections Backbone.

Je ne recommanderais pas d'utiliser des modèles/collections Backbone en tant que magasins Flux - ce n'est pas la même chose. La raison principale étant qu'un magasin de flux ne peut pas être muté de l'extérieur - il ne fournit pas de setters. Un magasin de flux mute son propre état en réponse à des actions. Et même si vous suivez la méthode "Flux" en utilisant les modèles Backbone en tant que magasins, votre code offre encore des possibilités ouvertes de manipulation directe de l'état depuis l'extérieur du magasin, qui pourraient être utilisées de manière abusive par d'autres membres de l'équipe, par exemple ...

2
cassiozen

+1 La réponse de Vetrenko Maxim concernant l'intégration de la colonne vertébrale et le modèle d'architecture. Flux est un modèle de flux de données pour les applications React et peut utiliser n'importe quelle structure de magasin de données/modèle que vous souhaitez.

Les avantages de l'utilisation de Flux + React:

  • Meilleure compréhension du flux de données 
  • Meilleure organisation du code
  • problèmes de débogage plus faciles avec les modèles
  • compartimenter le code de magasin de données/modèle à partir des vues

Il existe plusieurs modèles de cadres à utiliser, je préfère www.js-data.io pour React + Flux.

0
Cory Robinson

Flux est un modèle architectural qui applique un flux de données directionnel. Le modèle de flux est générique et il n'est pas spécifique aux applications React. Avec Flux, le flux de données mal défini et le manque d'intégrité des données seront évités. 

Si vous choisissez Backbone, vous pouvez combiner ces deux, à condition de savoir quand utiliser les méthodes Flux et Backbone. 

0
Juni Brosas