Aujourd'hui, il y a foisonnement de framework front-end annonçant toujours davantage de promesses de performances, de structuration, ... Trois d'entre eux semblent toutefois se dégager de la masse : Angular, React, et VueJS. Bien que basé sur des choix d'architecture différents, ces trois frameworks répondent globalement au même problématique et permettent de bâtir des applications similaires (en tout cas, pour le web.... Pour ce qui est du natif React conserve encore un avantage).
Après avoir expérimenté ces trois frameworks, mon choix se porte sur VueJS (pour les projets où l'on me laisse le choix, bien entendu). Pourquoi ? Ce sont les raisons qui me poussent à ce choix que je vais développer ici.
Une montée en compétence rapide
30 minutes ! C'est le temps qu'il m'a fallu pour découvrir VueJs et commence à produire mes premiers écrans, et cela, sans avoir à rougir du code finalement produit ! VueJS est un framework extrêmement facile à prendre en main : il suffit de connaître comment créer un composant, et d'avoir une compréhension basique des principales étapes de son cycle de vie, pour être capable de produire efficacement. Alors certes, on découvrira par la suite des patterns avancés pour rendre notre code meilleur, mais les bases resteront les mêmes...
Je vous met au défi d'en faire autant avec Angular ! Entre le typescript, les modules angular, le découpage components / services et le providing de ceux-ci, etc. La masse d'information à ingurgiter est bien plus importante... React me semble plus proche de Vue pour ce qui est de la prise en main... Entre React et Vue, c'est mon second point qui vient donner l'avantage à Vue.
Une documentation d'enfer
La documentation de VueJS est probablement l'une des meilleures documentations que j'ai eu à utiliser : à la fois didactique et complète. Il est assez rare que je prenne le temps de réellement lire une documentation, préférant apprendre par l'expérimentation, mais la doc de vue est tellement bien faite que l'on se prend à la lire de bout en bout. Et ce qui est vrai pour vue, est également vrai pour les projets associés tels que VueX (la gestion d'état).
Et en plus d'être clair, elle est complète ! Envie d'héberger Vue dans une image docker ? Il y a une page sur ce sujet ? Envie d'utiliser typescript ? Vous retrouverez également une page. Envie de créer une librairie npm pour héberger quelques composants ? C'est également documenté !
Un framework flexible qui s'adapte à notre usage
Vous avez l'habitude d'utiliser Jsx et vous voulez conserver cet outil ? Vous voulez mettre en œuvre Flow ou Typescript ? Vous partez sur un gros projet qui a besoin d'être extrêmement structuré ? Ou au contraire sur un petit projet à prototyper rapidement, mais sans réel complexité ? VueJS s'adapte à tous vos besoin !
C'est pour moi l'un des gros points fort du framework : il s'adapte réellement à vos usages et à vos envies. D'ailleurs que vous veniez d'angular ou de react, vous pourrez très vite vous retrouver "comme à la maison" tant il est facile d'adapter Vue à votre façon de travailler.
Une communauté de qualité
Je ne vais pas mentir, la communauté de VueJS est plus petite que celle d'angular ou de react... Mais je lui trouve un coté plus "qualitatif" : les projets construits pour Vue sont en général très propres et bien documentés. Les principaux besoins que vous pourriez avoir (gestion d'état, librairie de composants, formulaires, authentification ...) sont tous couvert et il est assez facile de trouver des intégrations de service tiers.
Je n'en dirais pas plus au sein de cet article, le mieux est de vous faire une idée par vous-même ! Sachez que si jamais vous rechercher une formation sur le sujet, je suis à votre entière disposition :)