Maison > interface Web > js tutoriel > Pourquoi ma propriété calculée Vue ne se met-elle pas à jour lors de l'utilisation des fonctions fléchées ?

Pourquoi ma propriété calculée Vue ne se met-elle pas à jour lors de l'utilisation des fonctions fléchées ?

Susan Sarandon
Libérer: 2024-11-29 03:05:10
original
504 Les gens l'ont consulté

Why Doesn't My Vue Computed Property Update When Using Arrow Functions?

Utilisation des fonctions fléchées dans les propriétés calculées de Vue

Dans Vue, les fonctions fléchées peuvent être utilisées pour définir des propriétés calculées. Cependant, les utilisateurs peuvent rencontrer un problème où la couleur de leur élément calculé ne change pas lors de l'utilisation des fonctions fléchées.

Comparaison du code original et modifié

Le code original utilise la syntaxe de fonction traditionnelle pour définir les propriétés calculées :

computed: {
  switchRed: function() {
    return { red: this.turnRed };
  },
  switchGreen: function() {
    return { green: this.turnGreen };
  },
  switchBlue: function() {
    return { blue: this.turnBlue };
  }
}
Copier après la connexion

Après avoir modifié le code pour utiliser les fonctions fléchées, le problème se pose :

computed: {
  switchRed: () => {
    return { red: this.turnRed };
  },
  switchGreen: () => {
    return { green: this.turnGreen };
  },
  switchBlue: () => {
    return { blue: this.turnBlue };
  }
}
Copier après la connexion

Cause profonde

Le problème réside dans l'utilisation des fonctions fléchées. Les fonctions fléchées héritent de leur contexte this du parent, alors que la syntaxe de fonction traditionnelle le lie à l'instance Vue. Lors de l'utilisation de fonctions fléchées dans les propriétés calculées, cela n'est pas lié à l'instance Vue, ce qui entraîne l'échec de la mise à jour de la couleur de l'élément calculé.

Solution

À Pour résoudre le problème, il est recommandé d'utiliser la syntaxe de fonction traditionnelle pour les propriétés calculées. Alternativement, on peut utiliser des fonctions fléchées pour les méthodes, mais il est important de les lier explicitement à l'instance Vue à l'aide des méthodes bind ou apply.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal