Avis et conseils sur ReactJS, Flux & Relay

C’est un peu un sujet four-tout au sujet autour ReactJS.

ReactJS à chaud:

  • J’ai rien contre le HTML dans le JS (JSX), c’est pas pire que des templates, seul “problème” devoir utiliser les attributs className pour class et htmlFor pour for.
  • ça change la vie par rapport à des $(selector).append/prepend/hide/on/off dans tous les sens.

Concernant Flux:

  • une vue à 100 milles pieds: c’est une façon de structurer le code, une sorte de MVC javascript…
  • unidirectional data flow, qui est en fait juste [actions]->[store]->[view: react component(s)] où la/les view peuvent générer des actions
  • le dispatcher est une très bonne pattern, mais l’implémentation de flux est trop verbeuse
  • dipatcher.waitFor est une idée génial
  • C’est pas encore très clair qui fait quoi entre les stores et les actions (et la DAO?)

Pour tout dire j’ai du mal à comprendre l’intérêt de flux.

Relay à l’air super intéressant, cf. la faq non-officiel.

Si vous avez des recommandations pour faire des applications isomorphic je suis preneur :)

1 « J'aime »

A chaud, React m’avait complètement rebuté. Il faut dire qu’il met à la poubelle pas mal de bonnes pratiques qu’on avait construit ces dernières années. Mélanger HTML et JS dans le même fichier ? Mettre ses styles en inline ? Avoir un virtual DOM, une abstraction totale et opaque entre templates et DOM ? A grands renforts d’articles élogieux, j’ai fini par accepter ces bizarreries et à “désapprendre” ce que je considérais comme mauvaises pratiques. Mais je ne suis pas acquis à la cause de React pour autant. 125KB c’est beaucoup trop pour juste gérer des vues, et je trouve l’API volubile et mal fichue. Dans la même approche, je lui préfère RiotJS: https://muut.com/riotjs/ ; Keep It Simple, Stupid !

Pour Flux, après une conférence d’une heure sur le sujet je suis sorti loin d’être convaincu. Etablir une architecture et des patterns communs sur un projet, c’est très bien. Mais il y a sûrement d’autres architectures valables et je ne vois pas l’intérêt de le vendre comme un package avec React. Et si c’était bêtement pour continuer dans le branding Facebook et les buzz-word à la React conf ?

Hello,

Ce Slideshare explique le choix des fondateurs de React sur le style inline.

Globalement, écrire <div class="toto"></div> ou <div style="styles.toto"></div> et écrire le contenu de la classe .toto ou de styles.toto ailleurs est la même approche.
Mieux encore, le mot style comme attribut html est même mieux choisi que class. On donne un style à son élément de DOM, pas une classe.

Pour les hermétiques, ce “produit” sur ProductHunt tente de satisfaire tout le monde : https://www.producthunt.com/tech/reactcss

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s