window.pipedriveLeadboosterConfig = { base : 'leadbooster-chat.pipedrive.com', companyId : 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version : 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster existe déjà') } else { w.LeadBooster = { q : [], on : function (n, h) { this.q.push({ t : 'o', n : n, h : h }) }, trigger : function (n) { this.q.push({ t : 't', n : n }) }, } } })() Ne plus utiliser l'API Options dans Vue - The Codest
The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2022-06-02
Développement de logiciels

Ne plus utiliser l'API Options dans Vue

The Codest

Paweł Dlugosz

Vue.js Développeur

Pourquoi ne devriez-vous pas utiliser l'API Options dans Due ? Trouvez la réponse à cette question dans l'article suivant et découvrez les avantages de Composition API.

Vue 3 a introduit une nouvelle approche de la création de composants appelée Composition API. Il s'agit d'une alternative à la Options API. L'API de composition est entièrement facultative et vous n'avez pas besoin de l'utiliser si vous voulez utiliser Vue 3. Cependant, il apporte quelques améliorations importantes qui facilitent votre travail et améliorent la lisibilité de l'interface utilisateur. code.

Avantages de l'API de composition par rapport à l'API d'options

1. Meilleure organisation et lisibilité du code.

L'API Composition introduit une nouvelle méthode appelée configuration. A l'intérieur, vous pouvez créer tous les éléments nécessaires au composant, tels que : données, méthodes, propriétés calculées, observateurs. Grâce à cela, vous pouvez garder le code propre en plaçant la logique responsable d'une fonctionnalité donnée en un seul endroit. En revanche, l'API Options obligeait à disperser la logique dans tout le fichier. En conséquence, le code n'était pas lisible et il fallait le faire défiler. Dans l'API Composition, les méthodes, les observateurs, etc. n'ont plus besoin d'être regroupés par type, vous pouvez les placer comme bon vous semble.

Options de l'API et exemple de composition

2. Extraction et réutilisation de la logique.

L'API de composition vous permet d'écrire du code réactif n'importe où. Vous pouvez tirer une partie de la logique réactive en dehors du composant. Ce type de code est appelé Composables. Les composables peuvent être importés dans de nombreux composants et permettent d'encapsuler une certaine logique et d'exposer les éléments réactifs nécessaires.

// shopping-list.js
import ( computed ) from "vue" ;

export function useShoppingList(listId) (
  const products = shoppingList.getAllProducts(listId) ;
  const productsCount = computed(() => products.value.length) ;
  const deleteProduct = (productId) => shoppingList.deleteProduct(productId) ;

  return (
    produits,
    productsCount,
    deleteProduct,
  ) ;
)

// Composant
import useSpoppingList de "@/composables/shopping-list.js" ;
export default (
  setup() (
    const ( products, productsCount, deleteProduct ) = useSpoppingList() ;
    return ( produits, produitsCount, deleteProduct ) ;
  ),
) ;

3. Utiliser facilement des constantes et des ressources externes dans les composants.

Dans l'API Options, pour ajouter par exemple une liste statique d'éléments importés d'un autre fichier, vous devez l'ajouter à data() (ce qui a un impact négatif sur les performances) ou l'ajouter à cette en créé(). Ces deux méthodes ne sont pas très élégantes. L'API de composition et le nouveau configuration qui vous permet d'exporter non seulement des éléments réactifs, mais aussi des constantes et des dépendances externes.

import list from "./list.json" ;
export default (
  setup() (
    return ( liste ) ;
  ),
) ;
  1. Vous pouvez même utiliser l'API de composition dans Vue 2.

Grâce au site officiel de l @vue/composition-api vous pouvez utiliser l'API de composition dans Vue 2 également.

Comment utiliser la nouvelle API de composition ?

<h3>Méthode de configuration</h3>

setup() est une nouvelle méthode ajoutée dans Vue 3 où vous pouvez placer tous les éléments nécessaires tels que les objets de données, les méthodes, etc. À partir de là, vous pouvez renvoyer les éléments que vous souhaitez inclure dans le modèle.

<template>
  <div>(( compte ))</div>
</template>
import ( ref ) de "vue" ;
export default (
  setup() (
    const count = ref(10) ;
    return ( count ) ;
  ),
) ;

réactif()

Pour créer un objet ou un tableau réactif, vous devez le créer à l'aide de la fonction reactive(defaultValue) méthode. Vous pouvez transmettre la valeur initiale de cet objet en tant qu'argument de la méthode. La méthode renvoie un mandataire pour cet objet, de sorte que lorsque vous y apportez des modifications, Vue les connaît et peut rafraîchir la vue comme il se doit.

Composition API

import ( reactive ) de "vue" ;
export default (
  setup() (
    const user = reactive((
      nom : "John",
      role : "ADMIN",
    )) ;
    return ( user ) ;
  ),
) ;

Options API

export default (
  data() (
    return (
      utilisateur : (
        nom : "John",
        rôle : "ADMIN",
      ),
    ) ;
  ),
) ;

Reactive seulement fonctionne pour les types d'objets (objets, tableaux et types de collections tels que Carte et Set (jeu de mots)). Il ne peut pas contenir de types primitifs tels que chaîne de caractères, nombre ou booléen. Ainsi, Vue introduit également ref().

ref()

Pour ajouter de la réactivité aux éléments primitifs, il faut les entourer de ref().

Composition API

import ( ref ) de "vue" ;
export default (
  setup() (
    const count = ref(10) ;
    return ( count ) ;
  ),
) ;

Options API

export default (
  data() (
    return (
      count : 10,
    ) ;
  ),
) ;

Modifier les objets réactifs

Vous pouvez modifier les valeurs des objets directement à partir de la méthode réactive, mais pour modifier les valeurs primitives, vous devez utiliser la méthode .valeur champ.

import ( ref, reactive ) de "vue" ;
export default (
  setup() (
    const user = reactive((
      nom : "John",
    )) ;
    user.name = "John Doe" ; // Changement de valeur

    const count = ref(10) ;
    count.value = 20 ; // Changement de valeur

    return (
      utilisateur,
      count,
    ) ;
  ),
) ;

Vous ne doivent utiliser le .valeur dans le modèle.

<div>(( compte ))</div>

Propriétés calculées

Les propriétés calculées peuvent être facilement créées en passant une méthode comme paramètre à la méthode importée calculé() méthode.

import ( reactive, computed ) de "vue" ;
export default (
  setup() (
    const list = reactive([
      "Élément 1",
      "Élément 2",
    ]) ;

    // Calculé
    const isEmpty = computed(() => list.length === 0) ;

    return (
      liste,
      isEmpty,
    ) ;
  ),
) ;

Méthodes

Vous pouvez également imbriquer des méthodes dans le configuration méthode.

Composition API

import ( ref ) de "vue" ;
export default (
  setup() (
    const count = ref(10) ;

        // Méthode
    const increment = () => (
      count.value++ ;
    ) ;

    return (
      compte,
      incrément,
    ) ;
  ),
) ;

Observateurs

Les observateurs sont créés de la même manière que les calculé. Toutefois, n'oubliez pas de passer le mandataire objet, c'est-à-dire nomcomme dans l'exemple ci-dessous, et non le nom.valeur elle-même.

import ( watch, ref ) de "vue" ;
export default (
  setup() (
    const name = ref("John") ;
        // Observateur
    watch(name, (currentValue, oldValue) => (
      console.log(`Valeur changée de $(ancienneValeur)à $(valeur actuelle)`) ;
    )) ;
    return ( name ) ;
  ),
) ;

Résumé

Dans cet article, je ne vous ai donné que les bases de l'API de composition afin que vous ayez une compréhension générale de ses différences et de ses avantages par rapport à l'API d'options. L'API de composition fournit également des alternatives au reste des éléments du composant, tels que crochetset introduit de nouvelles méthodes, telles que watchEffect. Il est conseillé de le lire dans la version officielle. Vue 3 la documentation.

bannière de coopération

Articles connexes

Développement de logiciels

Outils Javascript en action

Découvrez quelques outils de récupération JavaScript pour améliorer votre jeu de programmation. En savoir plus sur ESLint, Prettier et Husky !

The Codest
Reda Salmi React Développeur
Développement de logiciels

Embaucher des développeurs internes ou externes

Recruter en interne ou en externe ? C'est le dilemme ultime ! Découvrez les avantages de outsourcing ou de la constitution d'une équipe interne dans l'article suivant.

The Codest
Grzegorz Rozmus Chef d'unité Java
Développement de logiciels

Avantages et inconvénients de React

Pourquoi est-il utile d'utiliser React ? Quels sont les avantages de la bibliothèque JavaScript ? Pour trouver les réponses, plongez-vous dans cet article et découvrez les avantages réels de l'utilisation de React.

The Codest
Cezary Goralski Software Engineer
Développement de logiciels

La comparaison des champions : Angular vs Vue

Actuellement, il existe quelques frameworks frontaux couramment utilisés et constamment développés par leurs créateurs, tous légèrement différents les uns des autres. Et pourtant, ils peuvent avoir quelque chose en commun. Voici...

Oliwia Oremek

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

    fr_FRFrench
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek fr_FRFrench