VUE——兄弟之間傳參
阿新 • • 發佈:2022-05-12
第一種(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;
});
}