data为什么是一个函数?
答:data定义成一个函数的好处是可以让每个实例可以维护一份被返回对象的拷贝,若是对象,则会影响到其他实例
例子
<body>
<div id="app">
<zujian></zujian>
<zujian></zujian>
<zujian></zujian>
</div>
</body>
<script>
var msg = {
count: 0
};
Vue.component('zujian', {
// data是一个函数,三个button的点击次数是相互独立的
data: () => {
return {
count: 0
}
},
// data是一个对象,三个button的点击次数是互相影响的
// data: () => {
// return msg
// },
template: '<button @click="count++">点击了{{count}}次</button>'
});
new Vue({
el: "#app",
});
</script>
结果
data是一个函数时:
data是一个对象时: