IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 3 de Vue.js, le framework JavaScript progressif, est disponible avec de nouvelles API
Et des améliorations de performance

Le , par Bill Fassinou

238PARTAGES

9  0 
Vue.js est un framework JavaScript progressif open source conçu pour la construction d'interfaces utilisateurs. La bibliothèque centrale de Vue.js se concentre uniquement sur la couche vue et est facile à prendre en main et à intégrer à d'autres bibliothèques ou projets existants. En outre, Vue est également capable de gérer des applications sophistiquées de page unique quand vous le combinez avec des outils modernes et des bibliothèques de support. Vue.js 3.0 est sortie cette semaine avec plusieurs améliorations et embarque également de nouvelles fonctionnalités.

Vue.js 3.0 porte le nom de code “One Piece” et l’équipe de développement du framework a annoncé qu’elle représente plus de deux ans d'efforts de développement. Cela comprend notamment plus de 30 RFC, plus de 2600 commits, 628 demandes d’extraction de 99 contributeurs, et une quantité considérable de travail de développement et de documentation en dehors du cœur du système. Cette nouvelle version majeure du framework offre des bundles plus petits, de nouvelles API pour traiter les cas d'utilisation à grande échelle, etc. Voici ci-dessous les points marquants de Vue.js 3.0.

Approfondissement du concept de “framework progressif”

Selon l’équipe, dès ses humbles débuts, Vue avait une mission simple : être un framework accessible que chacun peut apprendre rapidement. Au fur et à mesure que sa base d’utilisateurs s’est agrandie, Vue s'est également développé pour s'adapter aux demandes croissantes. Il a donc évolué pour devenir ce que l’équipe appelle un “framework progressif” : un framework qui peut être appris et adopté progressivement, tout en offrant un soutien continu à l'utilisateur qui traite des scénarios de plus en plus exigeants. Il compterait aujourd’hui plus de 1,3 million d’utilisateurs dans le monde.


L’équipe de Vue.js a annoncé qu’il voit le framework utilisé dans une large gamme de scénarios, qui vont de l'interactivité saupoudrée sur des pages traditionnelles rendues par le serveur, aux applications complètes sur une seule page avec des centaines de composants. Et à présent, Vue.js 3.0 va encore plus loin dans cette flexibilité.

Modules internes superposés

Vue.js 3.0 core peut toujours être utilisé via une simple balise <script>, par contre ses composants internes ont été réécrits de fond en comble en une collection de modules découplés. D’après l’équipe, la nouvelle architecture offre une plus grande maintenabilité et permet aux utilisateurs finaux de réduire de moitié la taille du runtime grâce à l'arborescence. Ces modules exposent aussi des API de niveau inférieur qui débloquent de nombreux cas d'utilisation avancés, dont :

  • le compilateur supporte les transformations AST personnalisées pour les personnalisations du temps de construction (par exemple le temps de construction i18n) ;
  • le runtime de base fournit une API de première classe pour la création de rendus personnalisés ciblant différentes cibles de rendu (par exemple mobile natif, WebGL ou terminaux). Le moteur de rendu DOM par défaut est construit en utilisant la même API ;
  • le module “@vue/reactivity” exporte des fonctions qui fournissent un accès direct au système de réactivité de Vue, et peut être utilisé comme un ensemble autonome. Il peut être utilisé pour s'associer à d'autres solutions modèles (par exemple lit-html) ou même dans des scénarios hors interface utilisateur.

De nouvelles API pour lutter contre le changement d'échelle

Selon l’équipe, l'API 2.x basée sur l'objet est largement intacte dans la Vue 3. Cependant, la version 3.0 introduit également l'API de composition, un nouvel ensemble d'API visant à traiter les points sensibles de l'utilisation de Vue dans les applications à grande échelle. Cette API s'appuie sur l'API de réactivité et permet une composition et une réutilisation de la logique semblables aux Hooks de React, des modèles d'organisation du code plus flexibles et une inférence de type plus fiable que l'API basée sur l'objet 2.x.

L'API de composition peut aussi être utilisée avec Vue.js 2.x via le plug-in “@vue/composition-api”, et il existe déjà des bibliothèques utilitaires d'API de composition qui fonctionnent à la fois pour Vue.js 2 et 3 (par exemple vueuse et vue-composable).

Améliorations des performances

Selon l’équipe de développement du framework, Vue.js 3 offre des améliorations significatives de performance par rapport à Vue 2 en matière de taille de bundle (jusqu'à 41 % plus léger avec le traitement des arbres), de rendu initial (jusqu'à 55 % plus rapide), de mises à jour (jusqu'à 133 % plus rapide), et d'utilisation de la mémoire (jusqu'à 54 % de moins). Par ailleurs, l’équipe a annoncé qu’elle a adopté à partir de Vue.js 3 l'approche du “DOM virtuel assisté par le compilateur”.

Via cette approche, le compilateur de modèles effectue des optimisations agressives et génère un code de fonction de rendu qui élève le contenu statique, laisse des indices d'exécution pour les types de liaison et, surtout, aplatit les nœuds dynamiques à l'intérieur d'un modèle afin de réduire le coût de traversée du runtime. Selon l’équipe, l'utilisateur obtient de ce fait le meilleur des deux mondes : des performances optimisées par le compilateur à partir de modèles, ou un contrôle direct via des fonctions de rendu manuelles lorsque le cas d'utilisation l'exige.

L’amélioration de l’intégration de TypeScript

D’après l’équipe, la base de code de Vue.js 3 est écrite en TypeScript, avec des définitions de types générées, testées et regroupées automatiquement afin qu'elles soient toujours à jour. Elle a ajouté que l'API de composition fonctionne très bien avec l'inférence de type. En outre, Vetur, l’extension VS Code officielle, prend désormais en charge l'expression des modèles et la vérification des types d'accessoires tout en tirant parti de la typographie interne améliorée de Vue.js 3. Enfin, elle a aussi précisé que la typographie de Vue 3 prend entièrement en charge le TSX si c'est ce que vous préférez.

Fonctionnalités expérimentales

L’équipe a annoncé qu’elle a aussi proposé deux nouvelles fonctionnalités pour les composants monofichiers :

  • <installation du script> : sucre syntaxique pour l'utilisation de l'API de composition dans les SFC ;
  • <style vars> : variables CSS à état dans les SFC ;

Elle a expliqué que ces fonctionnalités sont déjà mises en œuvre et disponibles dans Vue 3.0, mais elles sont fournies uniquement dans le but de recueillir des commentaires. Elles resteront expérimentales jusqu'à ce que les RFC soient fusionnés. L'équipe a également implémenté un composant <Suspense> actuellement non documenté. Celui-ci permet d'attendre les dépendances asynchrones imbriquées (c’est-à-dire les composants avec async setup() ou les composants asynchrones) lors du rendu initial ou du changement de branche.

Elle a déclaré être en train de tester cette fonctionnalité avec l'équipe de Nuxt.js (Nuxt 3 est en cours de développement) et elle envisage de la consolider probablement dans la version 3.1.

Processus de libération progressive

D’après l’équipe, la sortie de Vue.js 3 marque l'état de préparation général du framework. Bien que certains des sous-projets du framework puissent encore nécessiter des travaux supplémentaires pour atteindre un statut stable (en particulier le routeur et l'intégration de Vuex dans les outils de développement), elle pense qu'il est approprié de lancer dès aujourd'hui de nouveaux projets avec Vue 3. Elle encourage les auteurs de bibliothèques à commencer à mettre à jour leurs projets pour soutenir Vue.js 3.

Migration et support IE11

L’équipe a repoussé la construction de la migration (construction v3 avec comportement compatible avec la v2 + avertissements de migration) et la construction d'IE11 en raison de contraintes de temps. Ainsi, elle prévoit de se concentrer sur eux au quatrième trimestre 2020. Par conséquent, les utilisateurs qui prévoient de migrer une application v2 existante ou qui ont besoin du support d'IE11 doivent être conscients de ces limitations pour le moment.

Source : Page GitHub de Vue.js 3.0

Et vous ?

Qu'en pensez-vous ?

Voir aussi

Quels sont les frameworks JavaScript que vous aimeriez apprendre en 2020 ? Voici quelques propositions qui sont tributaires des cas d'utilisations

Le framework JavaScript pour le développement des applications mobile React Native 0.63 s'accompagne d'une amélioration de LogBox, pour un débogage d'erreur plus facile

La version 3 de Svelte, un framework JavaScript de composants graphiques, supporte officiellement le langage de programmation TypeScript depuis juillet 2020

La version 5.0 du framework Bootstrap va supprimer jQuery, sa plus grande dépendance côté client pour du pur JavaScript

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Kulvar
Membre éclairé https://www.developpez.com
Le 16/05/2021 à 9:39
Quel est votre avis sur le sujet ?

On est mi-2021, Supporter IE11 c'est comme maintenir en vie un octogénaire dans le coma sous perfusion et assistance respiratoire.
Au bout d'un moment faut laisser la nature prendre son dû.
5  0 
Avatar de blbird
Membre chevronné https://www.developpez.com
Le 19/09/2020 à 16:26
Clairement pour moi Vuejs 2 était déjà le meilleur framework frontend actuel : simple à apprendre et à utiliser, léger, efficace. Hâte de regarder et d'essayer cette V3.
2  0 
Avatar de koyosama
Membre éprouvé https://www.developpez.com
Le 19/09/2020 à 18:46
Integration de typescript est un pure bonheur.
2  0 
Avatar de frfancha
Membre éprouvé https://www.developpez.com
Le 20/09/2020 à 8:51
Dommage de devoir encore alourdir le code pour supporter ie11. Tous ces efforts et temps se font au détriment du reste.
Supporter les grandes entreprises allez vous dire...
Oui mais Microsoft lui même ne supporte(ra) plus Teams sur ie11 (en novembre)!
1  0 
Avatar de Madmac
Membre extrêmement actif https://www.developpez.com
Le 16/05/2021 à 20:59
Citation Envoyé par Kulvar Voir le message
Quel est votre avis sur le sujet ?

On est mi-2021, Supporter IE11 c'est comme maintenir en vie un octogénaire dans le coma sous perfusion et assistance respiratoire.
Au bout d'un moment faut laisser la nature prendre son dû.


De toute façon, une caisse enregistreuse n'a pas besoin des fonctionnalités offertes par un framework. Et dans les autres cas, l'utilisateur peut toujours changer pour un autre navigateur. L'analogie avec L'octogénaire a une certaine valeur si on considère que le côté moyenâgeux du navigateur. J'en vois une autre comparaison. C'est plutôt comme la censure. On pénalise tout le monde pour satisfaire une toute petite minorité.

Et cela fait plus d'une décennie que les concepteurs sont forcés de se limiter parce que leur navigateur n'était pas à jour. Je ne verserai aucune larme quand explorer va disparaître comme un dinosaure.
1  0 
Avatar de valaendra
Membre éclairé https://www.developpez.com
Le 17/05/2021 à 18:53
Citation Envoyé par AoCannaille Voir le message
Mouais... Pour moi il faudrait plutôt abandonner Javascript qui n'est qu'une béquille bancale et utilisé à tort et à travers pour des choses pour lesquelles il n'a pas été conçu à la base. Cela entraine une pelleté de framework à vocation standardisante mais ce n'est qu'un vœu Pieu...
Haa, JS et sa réputation sulfureuse car des devs l'ont utilisé à tord et à travers. Si on en reste à la manipulation d'un DOM XML, JS excelle en tout point. Pour le reste, c'est l'approche "moderne" dans le dev web. On vous vend du framework à gogo pour permettre aux boites d'interchanger un dev qui connait le framework X avec un autre qui connait le même framework X (et en plus ça le fait devant le client: "voyez, on est à la pointe". Les formations "pros" ont suivi le mouvement et on se retrouve avec une génération de dev qui connait les directives VueJs ou les hooks wordpress par coeur mais avec 0 abstraction, qui ne comprend pas le fonctionnement d'un for{} ou ne sait pas coder une fonction récursive sans avoir la soluce dans un tuto (et en français SVP, sinon c'est pas la peine).

Bref je dérive, la décision d'abandonner IE11 ne pourra qu'être bénéfique
1  0 
Avatar de blbird
Membre chevronné https://www.developpez.com
Le 20/09/2020 à 11:52
Heureusement ils n'ont pas ciblé IE11 en développant cette V3 déjà. Je pense qu'ils feront une compatibilité sous forme de paquet additionnel. Au choix de chacun de l'intégrer ou non.
0  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 23/09/2020 à 17:49
A-t-on toujours l'impossibilité de préfixer les directives v-* avec des data-, un manque qui permettrait aux pages utilisant Vue de pouvoir passer les certifications W3C ?
0  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 17/05/2021 à 12:27
Microsoft a déjà installé Edge (basé sur chromium) via les MAJ sur Windows 10, il faut abandonner Internet Explorer.
0  0 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 19/05/2021 à 18:23
Citation Envoyé par AoCannaille Voir le message
Mouais... Pour moi il faudrait plutôt abandonner Javascript qui n'est qu'une béquille bancale et utilisé à tort et à travers pour des choses pour lesquelles il n'a pas été conçu à la base. Cela entraine une pelleté de framework à vocation standardisante mais ce n'est qu'un vœu Pieu...
Le problème de JS est que c'est une technologie porteuse : retire-là et plus grand chose ne marche. Avant il existait des IPN nommés Flash, Java ou Silverlight, mais les créateurs de JS et une personne rancunière envers Adobe ont décidé que c'était caca donc ce n'est plus possible.

JS ne disparaîtra que lorsqu'un langage concurrent sera massivement tout aussi intégré profondément au navigateur que JS. WASM le permet un peu mais on reste encore loin du but.

Après il y a aussi le sens cloud de l'Histoire, où le navigateur et le reste de l'OS vont se confondre côté utilisateur/client. C'est tout naturellement que les frameworks arrivent sur le Web puisqu'il faudra bien que le navigateur se "desktopise". Ce n'est peut-être pas le sens de l'Histoire que toi et moi voulons voir arriver, bien au contraire, mais il va falloir s'y adapter.
0  0