之前做的一個vue后台管理系統中,需要實現這樣一個功能:從列表頁點擊新建或編輯進入新建、編輯頁面,新建、編輯完成后需要關閉當前的新建和編輯tab,而tab的關閉則是由項目中的tag組件控制的,
新建和編輯組件與tag組件並無父子關系,因此無法用父子組件傳遞數據,所以想到了用event bus來實現。
記錄步驟如下:
1,需要先新建一個bus.js文件
2,在接收組件和傳遞組件中分別引入該文件
import bus from "./bus";
3,在傳遞組件中定義方法傳遞數據
bus.$emit('clear', 'newProgram')
第一個參數為方法名,第二個參數為傳遞數據
4,在接收組件中接收數據
created() { bus.$on('clear', msg => { this.path = msg this.closeProgram() }) this.setTags(this.$route); },