在创建或注册模板的时候,传入一个data属性作为用来绑定的数据。但是在组件中,data必须是一个函数,而不能直接把一个对象赋值给它。
<body>
<!-- 组件实例对象 -->
<div id="app">
<cpn></cpn>
<cpn></cpn>
<cpn></cpn>
</div>
<template id="cpn">
<div>
<h2>当前计数:{{counter}}</h2>
<button @click="increment">+</button>
<button @click="decrement">-</button>
</div>
</template>
<script src="../vue.js"></script>
<script>
// 注册组件
Vue.component('cpn',{
template:'#cpn',
data(){
// 不会相互影响,必须是个函数
return {
counter:0
}
},
methods:{
increment(){
this.counter++;
} ,
decrement(){
this.counter--;
}
}
})
const app = new Vue({
el: "#app",
data: {
message: "你好啊"
}
})
</script>
</body>
![](https://i-blog.csdnimg.cn/blog_migrate/3dbc27d26955a9c7bde4c078d8826c3c.png)