Sortie de Vue 3.5 « Tengen Toppa Gurren Lagann »
(blog.vuejs.org)- Cette version mineure inclut des améliorations internes et de nouvelles fonctionnalités utiles, sans changement cassant de compatibilité
Optimisation du système de réactivité
- Le système réactif de Vue a été largement refactorisé pour améliorer les performances et réduire l'utilisation mémoire (-56 %), sans changement de comportement
- La refonte corrige également des problèmes de valeurs calculées et de mémoire pendant le SSR
- En 3.5, le suivi de réactivité pour les tableaux réactifs volumineux et profonds a été optimisé, avec dans certains cas des performances jusqu'à 10 fois supérieures
Destructuration réactive des props
- La destructuration réactive des props a été stabilisée dans la 3.5 et activée par défaut
- Dans
<script setup>, les variables destructurées à partir de l'appeldefinePropssont désormais réactives - Cette fonctionnalité simplifie grandement la déclaration de props avec des valeurs par défaut en s'appuyant sur la syntaxe native de valeurs par défaut de JavaScript
Améliorations SSR
Hydratation différée
- Les composants asynchrones peuvent désormais contrôler le moment de leur hydratation en définissant une stratégie via l'option
hydratede l'APIdefineAsyncComponent()
useId()
useId()est une API qui permet de générer des identifiants uniques par application, garantis stables entre le rendu serveur et le rendu client- Elle peut être utilisée pour générer des ID pour les éléments de formulaire et les attributs d'accessibilité, et fonctionne dans les applications SSR sans incohérence d'hydratation
data-allow-mismatch
- Quand une valeur côté client doit forcément différer de celle du serveur (par exemple une date), l'attribut
data-allow-mismatchpermet de supprimer l'avertissement d'incohérence d'hydratation - Il est aussi possible de limiter les types d'incohérences autorisés en donnant une valeur à l'attribut (
text,children,class,style,attribute)
Améliorations des éléments personnalisés
- La 3.5 corrige de nombreux problèmes de longue date liés à l'API
defineCustomElement()et ajoute plusieurs nouvelles fonctionnalités pour créer des éléments personnalisés avec Vue - Prise en charge de la configuration de l'application pour les éléments personnalisés via l'option
configureApp - Ajout des API
useHost(),useShadowRoot()etthis.$hostpour accéder à l'élément hôte et au shadow root des éléments personnalisés - Prise en charge du montage d'éléments personnalisés sans Shadow DOM en passant
shadowRoot: false - Prise en charge de l'option
nonce, qui est attachée aux balises<style>injectées par les éléments personnalisés
Autres fonctionnalités notables
useTemplateRef()
- La 3.5 introduit une nouvelle manière d'obtenir une référence de template via l'API
useTemplateRef() - Avant la 3.5, il était recommandé d'utiliser une référence classique en faisant correspondre le nom de la variable avec l'attribut
refstatique - L'approche précédente était limitée aux attributs
refstatiques, car ils devaient pouvoir être analysés par le compilateur - À l'inverse,
useTemplateRef()fait correspondre les références via un ID de chaîne à l'exécution, ce qui permet des liaisons dynamiques de références pour des ID changeants
Teleport différé
- Une limitation connue du composant intégré
<Teleport>était que l'élément cible devait exister au moment du montage du composant teleport - Cela empêchait les utilisateurs de téléporter du contenu vers d'autres éléments rendus par Vue
- Dans la 3.5, une prop
deferest introduite pour<Teleport>, dont le montage intervient après le cycle de rendu courant, ce qui permet désormais ce cas d'usage
onWatcherCleanup()
- La 3.5 introduit
onWatcherCleanup(), une API importée globalement pour enregistrer des callbacks de nettoyage dans les watchers
3 commentaires
Cette version améliore vraiment énormément le confort lors du développement concret de composants.
Le nom de cette version est donc « Tengen Toppa Gurren Lagann ». (Un chef-d’œuvre ! Je crois que c’est le dernier anime de Gainax que j’ai vu.)
Vue a, de façon traditionnelle ? utilisé des titres de manga/anime. La 1.0, c’était Evangelion, la 2.0 Ghost in the Shell, la 3.0 One Piece, la 3.3 Kenshin le vagabond, la 3.4 Slam Dunk
https://en.wikipedia.org/wiki/Vue.js#Versions