<div id="app">
<my-component></my-component>
<my-component></my-component>
<my-component></my-component>
</div>
<script>
var data = {
counter: 0
};
Vue.component('my-component', {
template: '<button @click="counter++">{{ counter }}</button>',
data: function() {
return data;
}
});
var app = new Vue({
el: '#app'
})
</script>
我知道这个点击任一button,counter都会+1。
但是,template: '<button @click="counter++">{{ counter }}</button>',
这一行里面的counter不应该写成data.counter
吗?为什么直接写对象里面的属性也可以使用?
注意这里:
这里的第一个
data
对象得到的是下面这个对象:第二个data并非是第一个data的属性,而是上面var声明的data的引用。
实际上相当于这样:
有时候并非所有的变量声明都写在return里,这时候可以直接这样return。
当然也可以这样: