2017-04-03 3 views
1

Ich bin in meinem Kopf gemischt: Ich weiß nicht, warum ich irgendwo sehe, dass wir this in Vue.js Vorlage verwenden können. Jetzt weiß ich nicht, was ich benutzen muss.Verwenden Sie 'dies' in Vue Vorlage?

ich einige Fälle testen hier:

new Vue({ 
 
    el: "#app", 
 
    data: function() { 
 
    \t return { 
 
    \t myVar: 'test' 
 
    } 
 
    }, 
 
    methods: { 
 
    returnText: function() { 
 
    \t console.log('methods returnText !'); 
 
     return 'return text from methods !'; 
 
    } 
 
    }, 
 
    computed: { 
 
    computedProp: function() { 
 
    \t return 'computed !'; 
 
    } 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.5/vue.js"></script> 
 

 
<div id="app"> 
 

 
    {{ this.myVar }}<br><!-- this works --> 
 
    {{ myVar }}<br><!-- this works --> 
 
    <button @click="myVar = 'test without this !'" type="button"> 
 
      Change text</button><!-- this works --><br> 
 

 
    <button @click="this.myVar = 'test with this !'" type="button"> 
 
      Change text (not working because of 'this')</button><!-- this NOT works --> 
 
    <br><br> 
 
    
 
    {{ computedProp }} <!-- this works --> 
 
    <br> 
 
    {{ this.computedProp }} <!-- this works --> 
 
    
 
    <br><br> 
 
    {{ returnText() }} <!-- this works --> 
 
    <br> 
 
    {{ this.returnText() }} <!-- this works --> 
 
</div>

Was ist die Empfehlung?

+2

nicht mit 'this' ist derjenige, den ich überall sehe, und warum Typ 5 Zeichen mehr, wenn das Ergebnis gleich ist. :) –

+0

Zumindest in einigen Fällen verursacht 'this' Probleme, wie Sie bemerkt haben. Ein anderer Ort, den ich gefunden habe, ist "v-for". Mit Vuex kann man 'this. $ Store ...' nicht innerhalb 'v-for' machen, aber' $ store ... 'funktioniert gut. Daher ist die Empfehlung, "dieses" nicht zu verwenden, vernünftig. –

Antwort

0

Ich nehme an, v-bind wirkt wie js native 'bind' Funktion, z.B. bindet Funktion an ein anderes Objekt, anders als unser Kontext (was in anderen Fällen Vue ist).

Verwandte Themen