vue 元件間通訊總結

2021-09-04 19:32:26 字數 1134 閱讀 2932

父-子元件通訊

1. props

此處不區分是否加引號,若不bind,皆作字串處理,否則作為表示式處理

若傳入物件,則子元件上的該物件與父元件中的該物件指向同乙個位址,如果希望對傳入的物件進行修改且不影響父元件,則需要看情況對其進行深、淺拷貝

若傳入的屬性在父元件中會發生變化,則將其放置在子元件的computed或watch(deep:true)中以檢測變化

若要根據該屬性去修改以此為基礎的其他屬性,則使用computed的get/set或watch(deep:true)

ps: 也可以直接在父元件中獲取子元件的例項從而再呼叫子元件的方法、訪問子元件的屬性等(不常用)

2. v-bind="$attrs",v-on="$listeners",特別適合於封裝高階元件時向子元件傳值及繫結事件

$attrs 包含了父作用域中不作為 prop 被識別 (且獲取) 的特性繫結 (classstyle除外)。

$listeners 包含了父作用域中的 (不含.native修飾器的)v-on事件***

3. $children、$refs...(not suggest)

子-父元件通訊

1. 通過給子元件繫結事件,父元件監聽子元件事件或$emit 觸發的自定義事件,從而獲取子元件傳入的實參資料

常用語法糖:.sync

等同於value = val">

2. 通過$parent、$root...(not suggest)

兄弟元件通訊

1. 借助公用的乙個vue例項的事件來傳遞資料(bus通訊),即$on繫結事件,再使用$emit觸發該事件

2. 通過路由攜帶的params傳資料

3. 使用vuex,較複雜,建議龐大的系統再使用

祖先元件與子孫元件通訊

1. bus通訊

2. 通過依賴注入,即provide、inject

3. vuex

歡迎關注、點讚

vue元件間通訊

1 父元件向子元件傳遞資料,只需要props就行。設定資料並繫結到元件上。子元件用props接收,就能在元件內部使用獲取到的資料 反向通訊則需要在父級元件上自定義對應的方法,子元件使用 emit呼叫父元件方法,並上傳資料 content date content.vue date.vue 上面這個例...

vue元件間通訊

參考文章 vue父子元件間通訊可以用prop完成,跨級通訊則要用attrs來實現。1.attrs實現跨級通訊 父親元件 father元件 p msg1 p msg1 msg1 msg2 msg2 msg3 msg3 msg4 msg4 title 乙個標題 son1 div template imp...

vue元件間通訊

a元件要傳遞資料給b元件 a元件是有資料的,b元件是需要資料的 vue的各個元件data是不共享的,但是我們有時需要傳遞資料,那麼就可以使用vuex的store,store是乙個物件,裡面有個state,用來儲存多個元件需要使用的資料 我們先定義資料 在store的state中,定義資料 然後 在s...