Vue總結篇之元件通訊

2021-10-03 03:20:32 字數 1380 閱讀 3059

目錄

非父子元件通訊

全域性通訊

通過 props 向下傳遞,通過事件向上傳遞。

props (父子通訊)

e mi

t、

emit、

emit

、on(子父通訊)

//子元件

"$emit('add',c)"

>

<

/button>

//父元件

'cartadd($event)'

>

<

/cart>

注意:派送和監聽事件都是同乙個主體,即誰派送誰就監聽

ref、par

ent、

parent、

parent

、children

使用ref時需要注意

$attrs & $listeners (適用於深層巢狀元件 3介)

某些場景下,我們只需要將上層屬性層層傳遞到子孫元件時,如:

"message"

/>

"message"

/>

"message"

/>

provide & inject

// 父元件

provide()

}// 子元件

inject:

['form'

]

eventbus(**資料匯流排)

vue.prototype.$bus =

newvue()

// a元件

this

.$bus.

$emit

('message'

)// b元件

this

.$bus.

$on(

'message'

)

vuex

集中式儲存管理應用的所有元件的狀態,適用於中大型專案

元件通訊總結:

props & $emit (適用父子元件通訊)

a tt

rs、i

nher

itat

trs和

attrs、inheritattrs 和

attrs、

inhe

rita

ttrs

和listeners (適用深層巢狀元件(3介))

自定義**資料匯流排(如$bus)(適用跨級元件間通訊,缺點是多人合作時難以維護)

provide & inject (適用父子或父孫級元件, 缺點是只能做簡單的資料共享,對資料的操作和獲取不可控)

vuex (適用大型專案)

Vue元件通訊總結

直接給元件,新增屬性,在子元件中,使用props進行接收。子元件 props foo aoo 屬性的傳遞,也可以傳遞乙個方法,在子元件中執行這個方法,可以把引數傳遞到父元件中,達到通訊的目的。1 有兩種常見的方式,第一種方式,元件上定義事件。觸發這個事件的時候,直接使用emit。this.emit ...

vue之元件通訊

vue元件通訊一般分為以下幾種情況 1 父子元件通訊 2 兄弟元件通訊 3 跨多層級元件通訊 一 父子通訊 父元件通過props傳遞資料給子元件,子元件通過emit傳送事件傳遞資料給父元件。父元件和子元件通訊 父元件如下 template div class parent div id child ...

vue 元件間通訊總結

父 子元件通訊 1.props 此處不區分是否加引號,若不bind,皆作字串處理,否則作為表示式處理 若傳入物件,則子元件上的該物件與父元件中的該物件指向同乙個位址,如果希望對傳入的物件進行修改且不影響父元件,則需要看情況對其進行深 淺拷貝 若傳入的屬性在父元件中會發生變化,則將其放置在子元件的co...