Accueil Technologie
Quoi de neuf dans Vue 3.3 ?

Quoi de neuf dans Vue 3.3 ?

Quoi de neuf dans Vue 3.3 ?

Vue.js, un framework JavaScript réputé pour la création d’interfaces utilisateur, présente des fonctionnalités et des améliorations captivantes à chaque nouvelle version.


Vue 3.3 ne fait pas exception à la règle en introduisant toute une série de nouvelles fonctionnalités.


1. Macros : Prise en charge des types importés et complexes

Les macros, un outil puissant de Vue.js, vous permettent de définir des extraits de modèles réutilisables. Dans Vue 3.3, les macros prennent en charge les composants importés et les types complexes, ce qui améliore leur polyvalence et leur réutilisation.

Prenons l’exemple suivant :

 <template>
  <macro-example>
    <imported-component />
    <complex-type :data="complexData" />
  </macro-example>
</template>
<macro name="macro-example">
  <div>
    <slot></slot>
  </div>
</macro>

Dans l’extrait de code ci-dessus, l’élément macro-exemple La macro s’adapte à tout contenu placé à l’intérieur, y compris les composants importés tels que <imported-component /&gt ; et les types complexes comme <complex-type /&gt ;. Cela permet de créer des extraits de modèles adaptables et réutilisables.

2. Composants génériques : Prise en charge de divers types de données

Vue 3.3 introduit la prise en charge des composants génériques, permettant la création de composants réutilisables qui peuvent interagir de manière transparente avec divers types de données. Cette fonctionnalité s’avère particulièrement précieuse lors du développement de composants qui doivent gérer différents types de données sans compromettre la sécurité des types.

Voici un exemple de composant générique :

 <template>
  <div>
    <slot :item="data"></slot>
  </div>
</template>
<script>
export default {
  props: {
    data: {
      type: null, // Accepts any type
      required: true,
    },
  },
};
</script>

Dans le code fourni, le composant données Le type de l’objet est fixé à nullce qui lui permet d’accepter n’importe quel type de données. Par conséquent, ce composant peut gérer de manière transparente différents types de données tout en garantissant la sécurité des types lors de l’utilisation de la propriété au sein du composant.

3. Syntaxe améliorée pour defineEmits

La syntaxe defineEmits permet de déclarer explicitement les événements émis par un composant. Dans Vue 3.3, cette fonction bénéficie d’une mise à jour syntaxique ergonomique qui améliore la lisibilité du code. Vous pouvez désormais définir les Emits à l’aide d’une notation d’objet, ce qui permet une représentation plus claire des événements émis au sein du composant.

Prenons l’exemple suivant :

 <script>
import { defineEmits } from 'vue';
export default {
  emits: defineEmits(['click', 'input']),
};
</script>

Dans cet extrait de code, l’élément émet emploie la propriété defineEmits avec un tableau de noms d’événements. Cette approche garantit une déclaration concise et intelligible des événements émis par le composant, ce qui améliore encore la lisibilité du code.

4. Créneaux typés avec defineSlots

Vue 3.3 introduit une nouvelle fonction appelée defineSlots qui permet de spécifier précisément les types de slots dans un composant. Cette fonctionnalité renforce la sécurité des types dans les composants et facilite la prise en charge par l’IDE du contenu des slots :

 <template>
  <div>
    <slot name="header" :data="headerData" />
    <slot :data="defaultData" />
  </div>
</template>
<script>
import { defineSlots } from 'vue';
export default {
  slots: defineSlots({
    header: {
      data: {
        type: Object,
 required: true,
      },
    },
    default: {
      data: {
        type: String,
        required: false,
        default: 'Default Slot Content',
      },
    },
  }),
};
</script>

Dans l’extrait de code, l’élément slots utilise le defineSlots pour spécifier les types de slots utilisés dans le composant. Cela permet aux développeurs de bénéficier d’une vérification de type et d’une autocomplétion robustes tout en exploitant les slots.

5. Accès simplifié aux accessoires réactifs

La fonction de déstructuration des props réactifs introduite dans Vue 3.3 simplifie l’accès aux props réactifs dans la fonction de configuration d’un composant. Cette amélioration rationalise le processus d’accès aux accessoires réactifs, améliorant ainsi la lisibilité et la concision du code.

Par exemple :

 <script>
import { reactive } from 'vue';

export default {
  props: {
    user: Object,
  },
  setup(props) {
    const { user } = props; // Destructuring reactive props
    
    // Utilizing the destructured user object
    console.log(user.name);
    
    // ...
  },
};
</script>

Cet extrait de code déstructure l’élément utilisateur dans la fonction setup, ce qui permet d’accéder directement à ses propriétés. Cela simplifie le code et améliore sa lisibilité.

6. defineModel : Simplification des composants de liaison bidirectionnelle

Le projet expérimental defineModel La fonction defineModel de Vue 3.3 simplifie la création de composants de liaison bidirectionnelle. Elle fournit une approche pratique pour définir le modelValue prop et update:modelValue événement couramment utilisé dans les liaisons v-model.

Prenons l’exemple suivant :

 <script>
import { defineModel } from 'vue';
export default {
  props: {
    modelValue: String,
    'onUpdate:modelValue': Function,
  },
  emits: ['update:modelValue'],
  setup(props, { emit }) {
    const model = defineModel(() => [props.modelValue, emit('update:modelValue')]);

    // Accessing the model.value and model.update function
    console.log(model.value);
    model.update('New value');
    
    // ...
  },
};
</script>

Cet extrait de code définit l’élément modelValue prop et update:modelValue à l’aide de l’événement defineModel . Cela simplifie la création de composants de liaison bidirectionnelle, rendant le code plus concis et plus facile à lire.

Libérer les possibilités de développement sans faille

Vue 3.3 introduit un ensemble de fonctionnalités et d’améliorations captivantes, améliorant l’expérience de développement de Vue.js. Les mises à jour comprennent la prise en charge des types importés et complexes dans les macros, les composants génériques et les fonctionnalités expérimentales telles que les accessoires réactifs.

Ces ajouts offrent une flexibilité, une sécurité de type et une commodité accrues lors de la construction de vos applications Vue.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x