<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
<script src='./vue.js'></script>
</head>
<body>
<div id="app">
<counter :count="0" @inc="handleIncrease"></counter>
<counter :count="0" @inc="handleIncrease"></counter>
<div>{{total}}</div>
</div>
<script>
<!--父组件通过属性(:count="3")向子组件传值,子组件通过触发(this.$emit("inc", 2))的方式向父组件传值-->
<!--单向传递:父组件传给子组件的数据,子组件不能能直接改变-->
var counter = {
props: ['count'],
template: '<div @click="handleClick">{{number}}</div>',
data: function() {
return {
number: this.count
}
},
methods: {
handleClick: function() {
this.number += 2;
this.$emit("inc", 2)
}
}
}
var app = new Vue({
el: '#app',
components: {
counter: counter
},
data: {
total: 0,
},
methods: {
handleIncrease: function(step) {
this.total += step;
}
}
})
</script>
</body>
</html>