« applications » : séparation parfaite entre le client et le serveur UI moderne Difficile a réaliser avec une stack traditionnelle (PHP coté serveur et JS dans le client) Duplique beaucoup de code métier entre le client et serveur Twig c'est bien, mais en fait non Demande des développeurs à doubles compétences So old school On aime les challenges
: React est en beta Maitrise : Personne de chez nous n’avait mis en production du node Ressources : un développeur PHP/JS et un développeur iOS Equipe renforcée par un développeur PHP/JS
seul est extrêment simple Le JSX est un vrai bonheur à utiliser Flux est un pattern théorique inutilisable en l'état Parvenir à l'isomorphisme est très contraignant Stack complexe à mettre en œuvre : système de build à créer de zéro NB : Depuis nos débuts avec cette stack beaucoup de progrès ont été réalisés. Il est maintenant beaucoup plus facile d'initialiser un projet React/Flux isomorphique.
un simple appel à une fonction avec des paramètres R e a c t . r e n d e r ( < S a y H e l l o t o = " J e a n - M i c h e l " / > , d o c u m e n t . g e t E l e m e n t B y I d ( ' e x a m p l e - h e l l o - w o r l d ' ) ) ; R e a c t . r e n d e r ( R e a c t . c r e a t e E l e m e n t ( s a y H e l l o , { t o : " J e a n - M i c h e l " } , d o c u m e n t . g e t E l e m e n t B y I d ( ' s a y - h e l l o - c o n t a i n e r ' ) ) ;
des composants entre eux Le JSX exprime l'état final du DOM on se concentre sur le HTML que l'on veut générer... ... et non sur la mutabilité du DOM Rend explicite le métier de la GUI
s t P a g e = R e a c t . c r e a t e C l a s s ( { / * . . . * / r e n d e r : f u n c t i o n ( ) { v a r c i t y = t h i s . s t a t e . c i t y ; v a r n o w = D a t e . n o w ( ) ; r e t u r n ( < d i v c l a s s N a m e = " d e a l - l i s t - p a g e - c o m p o n e n t " > { c i t y . h a s S a l e s O p e n ( n o w ) ? < O p e n e d S a l e s C i t y c i t y = { c i t y } / * . . . * / / > : < C l o s e d S a l e s C i t y c i t y = { c i t y } / > } < / d i v > ) ; } } ) ;
être capable de démarer l'application coté client à partir de l'état dans lequel on l'a laissé coté serveur Transfert des données entre le client et le serveur Partage des composants Différences importantes entre les deux environements
u x i b l e par Yahoo e x p r e s s : serveur http r e a c t - r o u t e r : routeur i n t l + r e a c t - i n t l : i18n b r o w s e r i f y : processus de build Attention troll : mais pas de j Q u e r y