Heim  >  Artikel  >  Web-Frontend  >  Vue.js berechnete Eigenschaften berechnet und beobachtet(5)

Vue.js berechnete Eigenschaften berechnet und beobachtet(5)

黄舟
黄舟Original
2016-12-13 16:33:441081Durchsuche

Das Binden von Ausdrücken in Vorlagen ist sehr praktisch, wird aber eigentlich nur für einfache Vorgänge verwendet. Zur Beschreibung der Struktur von Ansichten werden Vorlagen verwendet. Wenn einer Vorlage zu viel Logik hinzugefügt wird, kann sie übergewichtig und schwer zu warten sein. deshalb Vue.js beschränkt Bindungsausdrücke auf einen Ausdruck. Wenn die Logik von mehr als einem Ausdruck erforderlich ist, sollten **berechnete Eigenschaften** verwendet werden.

Berechnetes Attribut der Vue-Instanz

<div class="test">    
<p>原始的信息{{message}}</p>   
<p>计算后的信息{{ComputedMessage}}</p>  
</div>

js-Code

var myVue = new Vue({    
el: ".test",    
data: {      
message:12    
},    
computed:{      
ComputedMessage:function () {        
return this.message+10;      
}   
}  
});

Die Schnittstelle zeigt 12 und 22 an

Die obige Methode ist eine der Die Wirkung der Pufferungsimplementierung hängt von der Pufferung ab. Die berechneten Eigenschaften werden nur dann neu bewertet, wenn sich die relevante Abhängigkeit (Nachricht) ändert. Dies bedeutet, dass diese Eigenschaft bei mehrmaligem Zugriff auf ComputedMessage nicht neu berechnet wird. .

Die berechnete ComputedMessage-Eigenschaft ist immer abhängig von der Nachricht

Der gleiche Effekt wird durch den Aufruf einer Funktion

<div class="test">    
<p>原始的信息{{message}}</p>    
<p>计算后的信息{{MessageFunction()}}</p>  
</div>

JS-Code

var myVue = new Vue({    
el: ".test",    
data: {      
message:12    
},    
methods:{      
MessageFunction:function () {        
return this.message+10;      
}   
}  
});

erzielt Das Ergebnis ist das gleiche wie oben, es wird jedoch jedes Mal erneut aufgerufen, wenn es erneut gerendert wird.
Wenn Sie also die beiden oben genannten Methoden verwenden, müssen Sie zunächst feststellen, ob Sie Caching verwenden müssen

Verwenden Sie die Überwachung der Vue-Instanz

Ich verstehe das nicht
Aber Verwenden Sie das berechnete Attribut. Bequemer und schneller

<div class="test">   
<p>原始的信息{{fullName}}</p> 
</div>

JS-Code

var myVue = new Vue({   
el: ".test",   
data: {     
firstName:"fur",     
lastName:"bool"  
},   
computed:{     
fullName:function () {       
return this.firstName+this.lastName     
}   
} 
});

Und Sie können den Setter und Getter des berechneten Attributs standardmäßig festlegen.

Demonstriert den Aufrufprozess von set und get

<div class="test">   
<p>原始的信息{{fullName}}</p>   
<button @click="fu">test</button> 
</div>

JS-Code

var myVue = new Vue({    
el: ".test",    
data: {      
firstName:"fur",      
lastName:"bool",      
fullName:"sasas dsdsd dsds"   
},    
computed:{      
fullName:{        
get:function () {          
console.log("get")          
return this.firstName+this.lastName        
},        
set:function(value){          
var names=value.split(" ");          
this.firstName=names[0];          
this.lastName=names[names.length-1];          
console.log("set");        
}     
 }    
 },    
 methods:{      
 fu:function () {        
 myVue.fullName="sasas dsdsd dsds";        
 console.log(myVue.firstName);   //sasas        
 console.log(myVue.lastName);  //dsds      
 }    
 } 
  });

Get wird zuerst ausgegeben

Wenn Sie auf die Schaltfläche klicken, um fullName einen Wert zuzuweisen, rufen Sie zuerst set und dann die get-Methode auf.

Angepasster Watcher

Obwohl berechnete Eigenschaften in den meisten Fällen sehr gut geeignet sind, ist es manchmal notwendig, einen Watcher anzupassen. Dies liegt daran, dass es sehr nützlich ist, asynchrone Vorgänge und andere Vorgänge auszuführen, wenn Sie auf Datenänderungen reagieren möchten.

Die oben genannten berechneten und beobachteten Eigenschaften von Vue.js finden Sie unter PHP Chinesische Website (www.php.cn)!

Stellungnahme:
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