<!DOCTYPE html>
<html>
<head>
<meta charset=
"utf-8"
/>
<title>孙三峰--博客园</title>
<script type=
"text/javascript"
src=
"js/vue2.0.3.js"
></script>
<script type=
"text/javascript"
>
var
Event =
new
Vue();
var
A={
template:`
<div style=
"border: 1px solid red; margin-bottom: 10px; width: 300px;"
>
<h4>A组件</h4>
<p>{{a}}</p>
<input type=
"button"
value=
"把A数据给C"
@click=
"send"
/>
</div>
`,
data(){
return
{
a:
'我是A里面的数据'
}
},
methods:{
send(){
Event.
$emit
(
'a-msg'
,this.a);
}
}
};
var
B={
template:`
<div style=
"border: 1px solid green; margin-bottom: 10px; width: 300px;"
>
<h4>B组件</h4>
<p>{{b}}</p>
<input type=
"button"
value=
"把B数据给C"
@click=
"send"
/>
</div>
`,
data(){
return
{
b:
'我是B里面的数据'
}
},
methods:{
send(){
Event.
$emit
(
'b-msg'
,this.b);
}
}
};
var
C={
template:`
<div style=
"border: 1px dotted green; margin-bottom: 10px;width: 300px;"
>
<h4>我是C组件,我在坐等接收数据</h4>
<p>{{a}}</p>
<p>{{b}}</p>
</div>
`,
data(){
return
{
a:
''
,
b:
''
}
},
mounted(){
var
_this = this;
Event.
$on
(
'a-msg'
,
function
(a){
_this.a=a;
});
Event.
$on
(
'b-msg'
,
function
(b){
this.b = b;
}.bind(this))
}
};
window.onload=
function
(){
new
Vue({
el:
'#box'
,
data:{
},
components:{
'com-a'
:A,
'com-b'
:B,
'com-c'
:C
}
})
}
</script>
</head>
<body>
<div id=
"box"
>
<com-a></com-a>
<com-b></com-b>
<com-c></com-c>
</div>
</body>
</html>