Maison >interface Web >js tutoriel >Quelle est la différence entre calculé et méthodes dans Vue.js ? (avec des exemples)
Le contenu de cet article porte sur quelle est la différence entre les méthodes calculées et les méthodes dans Vue.js ? (Avec des exemples), il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Cela a été expliqué dans les documents officiels. Je vais enregistrer ma compréhension ici.
Scénarios d'utilisation du calcul
Pour les expressions logiques complexes dans les modèles HTML, afin d'éviter que la logique ne soit trop lourde et difficile à maintenir, la logique pertinente doit être mis en attributs calculés.
Par exemple, celui-ci
<div id="root"> <p>Reversed message: "{{ message.split('').reverse().join('') }}"</p> </div>
Ici, le modèle n'est plus une simple logique déclarative. Voici la chaîne inversée qui souhaite afficher le message variable. De telles expressions contenant un traitement logique complexe doivent utiliser des propriétés calculées.
La différence entre calculé et méthodes
1 calculé est un appel d'attribut, tandis que les méthodes sont un appel de fonction
Cela signifie que dans l'interpolation HTML.
computed est appelée sous forme d'accès aux attributs, comme les méthodes {{reversedMessageComputed}> Vous devez ajouter () pour appeler, comme {{reversedNameMethod(. ) }}, sinon le contenu suivant sera rendu dans la vue function () { [code natif] }2. >ici Permettez-moi de citer la documentation officielle
Les propriétés calculées sont mises en cache en fonction de leurs dépendances. Ils ne sont réévalués que lorsque les dépendances associées changent.
e84a645d77f16f01a552f36f010f7960 f5b3ebc4cb932b9ccb69ea74d4ca8dd7 e388a4556c0f65e1904146cc1a846beeReversed message: "{{ reversedNameMethod() }}"94b3e26ee717c64999d7867364b1b4a3 e388a4556c0f65e1904146cc1a846beeReversed message: "{{ reversedMessageComputed }}"94b3e26ee717c64999d7867364b1b4a3 16b28748ea4df4d9c2150843fecfba68Dans l'exemple ci-dessus, la mise en cache signifie que tant que le message n'a pas changé, accéder plusieurs fois à la propriété calculée reverseMessageComputed renverra immédiatement le résultat du calcul précédent sans avoir à réexécuter la fonction. . La méthode reverseNameMethod() réexécutera la fonction à chaque fois qu'elle sera appelée.
// javascript var vm = new Vue({ el: '#root', data: { name: 'Alex', message: 'Hello' }, methods: { reversedNameMethod: function () { return this.name.split('').reverse().join('') } }, computed: { // 计算属性的 getter reversedMessageComputed: function () { // `this` 指向 vm 实例 return this.message.split('').reverse().join('') } } })
Mais en même temps, il est important de noter que cela signifie également que les propriétés calculées suivantes ne seront plus mises à jour, car Date.now() n'est pas une dépendance réactive :
La valeur de now sera dans Elle est générée lorsque Vue est instanciée et ne change jamais.
// javascript computed: { now: function () { return Date.now() } }En revanche, la méthode appelante exécutera toujours à nouveau la fonction chaque fois qu'un nouveau rendu est déclenché.
Les autres instructions pour les calculs
les calculs et les méthodes ne peuvent pas avoir le même nom
Vue transmettra tous les éléments des méthodes et des données à l'objet généré par Vue, ce qui remplacera attributs avec des noms en double dans calculés
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!