vue 兄弟元件之間傳值之bus

2021-08-21 07:29:36 字數 824 閱讀 1035

有時候兩個元件也需要通訊(非父子關係)。當然vue2.0提供了vuex,但在簡單的場景下,可以使用乙個空的vue例項作為**事件匯流排。

參考:例子:

<

div

id>

<

c1>

c1>

<

c2>

c2>

div>

var bus = new vue(); //

為了方便將bus(空vue)定義在乙個元件中,在實際的運用中一般會新建一bus.js

vue.component('c1',}

', data: () =>(),

created() );

}});

vue.component('c2',

}});

vue(

},methods: ,

}

元件2

import bus from './bus'export 

default

},methods: );

}, 

}

但這種引入方式,經過webpack打包後可能會出現bus區域性作用域的情況,即引用的是兩個不同的bus,導致不能正常通訊

當然也可以直接將bus注入到vue根物件中,

import vue from 'vue'const bus = new

vue()

vue(  

})

在子元件中通過this.$root.bus.$on(),this.$root.bus.$emit()來呼叫

vue兄弟元件之間傳值之Bus

2020 3 22 可以用過乙個vue例項bus作為媒介,要相互通訊的兄弟元件之中,都引入bus,之後通過分別呼叫bus事件觸發 emit和監聽 on 來實現元件之間的通訊和引數傳遞,類似window的全域性自定義事件。類似與子傳父,只不過是利用乙個新的vue示例作為媒介,而不是當前vue示例 th...

vue頁面(兄弟元件)之間傳值

最近重溫了 射鵰英雄傳 郭靖學習了降龍十八掌 九陰真經等一身絕世武功,卻不懂得如何運用,他也說一直自己蠢,真是蠢啊。今天面試,面試官問我頁面a跳轉到b怎麼傳值,我想了半天沒想到,後面他提示用vuex。啊,我真是蠢啊 歸根結底,都是實戰經驗太少。對於單頁面應用,頁面傳值就是元件之間傳值 那麼,元件之間...

vue兄弟父子元件之間傳值

一 父元件修改子元件的值 1.在父元件中宣告子元件 import editstability from edit editsimilarstability.vue 2.使用引入的子元件,可以通過 ref 這個 attribute 為子元件賦予乙個 id 引用 v if editvisible ref...