1. 程式人生 > 其它 >VUE——兄弟之間傳參

VUE——兄弟之間傳參

第一種(vue 自帶的功能)
1、首先建立一個js(bus.js) 檔案,匯出vue 物件

import Vue from 'vue'

export default new Vue();


2、在需要傳遞引數的兄弟元件裡匯入建立的 js 檔案,並在傳參的方法執行 Bus.$emit(‘方法名’, ‘需要傳遞的引數’)

import Bus from "@/bus";

getInfo(info){
   // 向彈窗元件傳遞當前選中資訊  'getListInfo'  接受的方法名   info 傳遞的值
   Bus.$emit('getListInfo', info)
}


3、在另一個元件裡接收,先匯入建立的 js 檔案,呼叫 Bus.$on(‘方法名’, (data) => {})方法接受傳來的值。

import Bus from "@/Bus";

created() {
// 獲取兄弟元件傳來的值
Bus.$on("getListInfo", (data) => {
console.log(data);
}
}


第二種(使用外掛,適用vue3)
1、先安裝 npm install mitt 外掛
程式碼片.

npm install mitt

2、建立一個js 檔案,匯入 mitt

import mitt from 'mitt'

const bus = {}

const emitter = mitt()

bus.$on = emitter.on
bus.$off = emitter.off
bus.$emit = emitter.emit

export default bus

3、在傳送元件裡使用

import bus from "@/bus";

transmit(){
bus.$emit("closeShow2", false);
}


4、在接受值的元件裡使用

import bus from "@/bus";

created() {
bus.$on("closeShow2", (val) => {
this.isShow2 = val;
});
}