为什么data在组件中必须是一个函数呢?
- 如果不是一个函数,Vue直接就会报错。
- 原因是在于Vue让每个组件对象都返回一个新的对象,因为如果是同一个对象的,组件在多次使用后会相互影响。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="vue.js"></script>
</head>
<body>
<div id="app">
<cpn></cpn>
<cpn></cpn>
<cpn></cpn>
</div>
<template id="cpn">
<div>
<h2>当前计数:{{counter}}</h2>
<button @click="add">+</button>
<button @click="minus">-</button>
</div>
</template>
<script>
Vue.component('cpn', {
template: '#cpn',
data() {
return {
counter: 0
}
},
methods: {
add() {
this.counter++
},
minus() {
this.counter--
}
}
})
let app = new Vue({
el: '#app',
data: {
}
})
</script>
</body>
</html>