1.父组件通过属性props向子组件传值
2.由于单向数据流,子组件不能修改父组件的数据
可以在data里对父组件传递的数据进行克隆,之后修改自己data里的内容,而不是修改父组件传递的数据
<body>
<div id="app">
<counter :count="2" @change="handleChange"></counter>
<counter :count="3" @change="handleChange"></counter><!-- //加了:表示双引号中的是js表达式而非字符串 -->
<div>{{total}}</div>
</div>
</body>
<script>
var counter={
props: ['count'],
template:'<div @click="handleClick">{{number}}</div>',
data : function(){
return {
number: this.count
}
},
methods: {
handleClick : function() {
this.number+=2;
this.$emit('change',2)//触发一个change事件,可以携带一个或多个参数
}
}
}
var vm= new Vue({
el: '#app',
components:{
counter:counter
},
data : {
total:5
},
methods: {
handleChange:function(add){
this.total+=add;
}
}
})
</script>