1,创建一个公共的实例文件(VueEvent.js),作为中间仓库来传递数值,
2,想从 B 组件获取 A 组件数据,分别在A和B组件中引入公共实例文件VueEvent.js ,然后在A组件中用$emit()
将数据发送出去,然后在 B 组件中用$on
方法来接收,
3,在公共文件中先引入 Vue import Vue from 'vue'
对 Vue 进行实例化叫 VueEvent var VueEvent = new Vue()
将实例化 暴露 出去 export default VueEvent
这样空文件就完成了他的使命。
4,然后在A和B组件的根组件文件中引入A和B两个组件,
5,分别在A和B组件中引入 公共是实例文件VueEvent.js import VueEvent from '../VueEvent.js'
6,在A组件中添加事件,发送给B事件
发送时间 用$emit()
,有两个参数,第一个是设置数据的名字,然后再B组件中用$on()
接收。
$emit('数据名称',数据)
。
$on('数据名称',function(data){})
methods: {
emitToB(){
VueEvent.$emit('tohome',this.aaa)
}
},
7,在B组件中接收事件
mounted(){
VueEvent.$on('tohome',function(data){
this.bbb = data;
//console.log(this.bbb)
})
}
VueEvevt.js
import Vue from 'vue';
var VueEvent = new Vue();
export default VueEvent;