vue中$emit与$on和BUS
bus
//vue原型链挂载总线
Vue.prototype.bus = new Vue();
//子组件发送数据
this.bus.$emit("change",data);
//子组件接收数据
this.bus.$on("change",function(data){
})
vue中$emit与$on
var Event = new Vue();
- 相当于又new了一个vue实例,Event中含有vue的全部方法
Event.$emit('msg',this.msg);
- 发送数据,第一个参数是发送数据的名称,接收时还用这个名字接收,第二个参数是这个数据现在的位置
vent.$on('msg',function(msg){
//这里是对数据的操作
})
-
接收数据
- 第一个参数是数据的名字,与发送时的名字对应
- 第二个参数是一个方法,要对数据的操作
-
需要注意的是接受数据的时候(例如
mounted
)会有this
作用域问题