Heim > Web-Frontend > js-Tutorial > Hauptteil

Eine eingehende Analyse der verschiedenen Rechenmechanismen und Methoden in Vue.js

亚连
Freigeben: 2018-05-26 16:06:18
Original
1360 Leute haben es durchsucht

Dieser Artikel führt Sie in die verschiedenen Mechanismen von „Computed“ und „Computed“ in Vue.js ein. In vue.js werden „Methoden“ und „Computed“ dynamisch als Methoden verwendet Werfen Sie einen Blick darauf

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 sollten ()

2. Wir können Methoden verwenden, um die Berechnung zu ersetzen. Die beiden Effekte basieren auf dem Abhängigkeitscache und werden nur dann neu bewertet, wenn sich die entsprechenden Abhängigkeiten ändern.

Bei 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: &#39;.test2&#39;,
      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. Es ist ersichtlich, dass bei Verwendung des berechneten Attributs die Informationen vom ersten Mal bei jedem Aufruf der Seite verwendet werden, jetzt jedoch nicht erneut ausgelöst werden. Dies ist abhängig vom Cache. (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 erfolgen in Echtzeit. Beim erneuten Rendern wird die Funktion immer erneut aufgerufen und ohne Zwischenspeicherung ausgeführt (mehrere Ausgabezeiten sind unterschiedlich)

Das kann man sagen Durch die Verwendung von „Computed“ wird die Leistung verbessert. Wenn Sie jedoch kein Caching wünschen, können Sie das Methodenattribut verwenden.

Das Attribut „computed“ verfügt standardmäßig nur über einen Getter, aber Sie können 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(&#39;ok&#39;)
           //这里根据情况,可以返回有返回值也可以没有返回值。
        }
    }
   })
</script>
对比computed 和 methods:
computed计算的结果如果不发生改变就不会触发result这个函数。而methods中一般都是定义的需要事件触发的一些函数。每次只要触发事件,就会执行对应的方法。如果把computed中的方法写到method中会浪费性能。
computed必须返回一个值页面绑定的才能取得值,而methods中可以只执行逻辑代码,可以有返回值,也可以没有。
Nach dem Login kopieren

Das Obige habe ich für Sie zusammengestellt. Ich hoffe, es wird Ihnen in Zukunft hilfreich sein.

Verwandte Artikel:

Ajax- und CGI-Kommunikation unter Boa-Server (grafisches Tutorial)

Ajax ruft restful interface Methode auf Übertragen von Daten im Json-Format (mit Code)

Das Problem, dass IE8 bei Verwendung des Ajax-Zugriffs nicht jedes Mal aktualisiert werden kann

Das obige ist der detaillierte Inhalt vonEine eingehende Analyse der verschiedenen Rechenmechanismen 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!