Heim > Web-Frontend > js-Tutorial > Die Verwendung und der Unterschied zwischen berechneten und Methoden in Vue.js

Die Verwendung und der Unterschied zwischen berechneten und Methoden in Vue.js

php中世界最好的语言
Freigeben: 2018-05-03 15:27:30
Original
2655 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Verwendung und Unterschiede von Computer- und Methoden in Vue.js vorstellen. Was sind die Vorsichtsmaßnahmen bei der Verwendung von Computer- und Methoden in Vue.js? sehen.

In vue.js gibt es zwei Möglichkeiten, Methoden dynamisch zu verwenden und als Methoden zu berechnen

1. Der erste und offensichtlichste Unterschied besteht darin, dass beim Aufruf Methoden hinzugefügt werden müssen ( )

2. Wir können berechnete Methoden verwenden. Die Auswirkungen beider Methoden sind gleich, aber berechnet basiert auf seinem Abhängigkeitscache und wird nur neu bewertet, wenn sich die relevanten Abhängigkeiten ändern.

Bei der Verwendung von Methoden wird die Funktion beim erneuten Rendern immer erneut aufgerufen und ausgeführt

Um das Verständnis zu erleichtern, laden wir zunächst einen Quellcode hoch

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>title</title>
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
  </head>
  <body>
    <p class="test">  <!--computed计算属性-->
      <p>{{now}}</p>
      <p>{{now}}</p>
      <p>{{now}}</p>
      <p>{{now}}</p>
      <hr />      <!--横线分割-->
</p>
    <p class="test2">  <!--methods方法,注意new()加了括号-->
      <p>{{now()}}</p>
      <p>{{now()}}</p>
      <p>{{now()}}</p>
      <p>{{now()}}</p>
    </p>
  </body>
  <script type="text/javascript">
    var myVue = new Vue({
      el: ".test",
      computed: {
        now: function() {
          var yanshi = 0;
          for(var o = 0; o < 2000; o++) {   //延时
            for(var q = 0; q < 2000; q++) {
              yanshi++;
            }
          }
          return Date.now()
        }
      }
    });
    var vue2 = new Vue({
      el: '.test2',
      methods: {
        now: function() {
          var yanshi = 0;
          for(var o = 0; o < 2000; o++) {
            for(var q = 0; q < 2000; q++) {
              yanshi++;
            }
          }
          return Date.now()
        }
      }
    })
  </script>
</html>
Nach dem Login kopieren

Die laufenden Ergebnisse sind wie oben dargestellt. Wenn das berechnete Attribut berechnet wird, werden die Informationen vom ersten Mal bei jedem Aufrufen der Seite verwendet und werden jetzt nicht erneut ausgelöst. Dies hängt vom Caching ab. (Wenn es eine Verzögerung gibt, sind mehrere Ausgabezeiten gleich)

Welcher Wert wird dann neu bewertet, wenn sich die relevanten Abhängigkeiten ändern? Beispielsweise wird die Nachrichtenvariable im berechneten Attribut der Funktion „reversedMessage“ aufgerufen ()

Das bedeutet, dass, solange sich die Nachricht nicht geändert hat, mehrere Zugriffe auf die berechnete Eigenschaft „reversedMessage“ sofort das vorherige Berechnungsergebnis zurückgeben, ohne dass die Funktion erneut ausgeführt werden muss.

Methoden sind Echtzeit-Methoden. Beim erneuten Rendern wird die Funktion immer erneut aufgerufen und ohne Zwischenspeicherung ausgeführt (mehrere Ausgabezeiten sind unterschiedlich).

Man kann sagen, dass die Verwendung von Berechnungen erfolgt haben eine bessere Leistung. Wenn Sie jedoch kein Caching wünschen, können Sie das Methodenattribut verwenden.

Das Attribut „computed“ verfügt standardmäßig nur über einen Getter, Sie können jedoch bei Bedarf auch einen Setter bereitstellen: Computed kann also tatsächlich auch Parameter übergeben.

ps: Werfen wir einen Blick auf den Unterschied zwischen den berechneten Eigenschaften und Methoden von vue

在new Vue的配置参数中的computed和methods都可以处理大量的逻辑代码,但是什么时候用哪个属性,要好好区分一下才能做到正确的运用vue。
computed称为计算属性,顾名思义,计算就要返回一个计算的结果,所以,当我们要处理大量的逻辑,但是最后要取得最后的结果的时候可以用computed;
简单示例:
要求:
<input type="text v-model="num1"><input type="text v-model="num2">
现在要返回num1和num2的和;
<script>
  new Vue({
    el:"#box",
    data:{
        num1:0,
        num2:0
        }
    computed:{  
        result:function(){
            return this.num1 + this.num2  
            // 计算属性必须有一个返回值
        }
    }
   })
</script>
methods:是方法的意思,在js中,我们把一些函数叫做方法,一般情况下,要触发这个方法就要执行,要执行就要有一个源来触发,所以就需要一个事件源。这是和computed的一点不同之处;
methods的示例:
要求:
<\button @click="do()">点击弹出<\/button>
<script>
  new Vue({
    el:"#box",
    data:{
        num1:0,
        num2:0
        }
    methods:{  
        do:function(){
           alert('ok')
           //这里根据情况,可以返回有返回值也可以没有返回值。
        }
    }
   })
</script>
对比computed 和 methods:
computed计算的结果如果不发生改变就不会触发result这个函数。而methods中一般都是定义的需要事件触发的一些函数。每次只要触发事件,就会执行对应的方法。如果把computed中的方法写到method中会浪费性能。
computed必须返回一个值页面绑定的才能取得值,而methods中可以只执行逻辑代码,可以有返回值,也可以没有。
Nach dem Login kopieren

Ich glaube, Sie haben die Methode nach dem Lesen gemeistert Der Fall in diesem Artikel und mehr. Wie aufregend, bitte achten Sie auf andere verwandte Artikel auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Erläuterung der Anwendungsfälle von Angular Components

Was sind die Speichermethoden für JS-Originalwerte und -Referenzen? Werte

Das obige ist der detaillierte Inhalt vonDie Verwendung und der Unterschied zwischen berechneten und Methoden in Vue.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage