js代码:
var event = new Vue();//定义一个调度器
Vue.component("me",{
template:'<div>我说:<input type="text" v-model="mesaid" @keyup="onChange"></div>',//v-model实现数据的双向绑定
data:function(){
return{
mesaid:""
}
},
methods:{
onChange:function(){
event.$emit("i-said",this.mesaid);//使用调度器触发自定义事件,并传参
}
}
});
Vue.component("repeat",{
template:'<div>她说:{{shesaid}}</div>',
data:function(){
return{
shesaid:""
}
},
mounted:function(){//钩子事件,加载后立即监听“i-said"事件
var me = this;//在调度器之前将this储存到变量中
event.$on("i-said",function(data){//监听事件,毁掉函数,将data中的值传给shesaid
me.shesaid = data;
})
}
});
var app =new Vue({
el:"#app"
})
html代码:
<div id="app">
<me></me>
<repeat></repeat>
</div>