我的想法很混乱:我不知道为什么我会在Vue.js模板中看到我们可以使用this
的地方。现在我不知道我必须使用哪个。
我在这里测试了一些案例:
new Vue({
el: "#app",
data: function() {
return {
myVar: 'test'
}
},
methods: {
returnText: function() {
console.log('methods returnText !');
return 'return text from methods !';
}
},
computed: {
computedProp: function() {
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>
建议是什么?
答案 0 :(得分:0)
我假设v-bind的作用类似于js native'bind'函数,例如将函数绑定到另一个对象,不同于我们的上下文(在其他情况下是Vue instanse)。