VUE元件學習 元件通訊

2021-10-09 19:41:17 字數 1750 閱讀 8934

儘管父子元件可以通過 this.par

ent,

this

.parent,this.

parent

,thi

s.child,this.$root互相訪問,但是子元件應當避免直接依賴父元件的資料

因為作用域是有層次的,所以我們可以在作用域上傳遞事件。如果要通知整個事件系統,就要向下廣播。每個vue例項都是乙個事件觸發器

(1)vue自定義事件,用於在元件樹中通訊

**如下(示例):

>

"child-template"

>

v-model

="msg"

>

v-on:click

="notify"

>

dispatch eventbutton

>

template

>

"events-example"

>

>

message:}p

>

>

child

>

div>

body

>

>

//註冊子元件

//將當前的訊息派發出去

vue.

component

('child',}

, methods:}}

})//初始化父元件

//收到訊息時將事件推入乙個陣列中

var parent =

newvue(,

//建立例項時,『events』選項簡單的呼叫'$on'

events:}}

)script

>

(2)也可以在子元件用到的地方宣告事件處理器,這樣可以更直觀

**如下(示例):

>

'child-template'

>

v-model

="msg"

>

v-on:click

="notify"

>

dispatch eventbutton

>

template

>

"event-example"

>

>

message:}p

>

v-on:child-msg

="handleit"

>

child

>

div>

body

>

>

//註冊子元件

//將當前訊息源派發出去

vue.

component

('child',}

, methods:}}

})//初始化父元件

//在收到訊息時將事件推入乙個陣列中

var parent =

newvue(,

methods:}}

)script

>

這樣就很清楚了——當子元件觸發了child-msg事件時,父元件的handleit方法將會被呼叫,所有影響父元件狀態的**都放在父元件的handleit方法中;子元件只關注觸發事件。

(1)在子元件中觸發事件

(2)在父模板中用到子元件的地方宣告事件觸發器,並繫結到父模板中的方法上

這樣,父元件狀態控制由父元件的方法決定,子元件只管觸發事件即可

Vue 元件通訊

單層元件通訊 prop 元件例項的作用域是孤立的。這意味著不能 也不應該 在子元件的模板內直接引用父元件 的資料。父元件的資料需要通過 prop 才能下發到子元件中。子元件要顯式地用 props 選項宣告它預期的資料 vue.component child 然後給他傳乙個訊息 message hel...

vue元件通訊

這部分vue文件已經說的很清楚了,但是為了更好的理解,自己再整理一遍。首先,父元件的與子元件的通訊是通過子元件的props。那麼子元件有資料變化時,想要通知父元件應該怎麼辦呢?父元件可以在使用子元件的地方直接用 v on 來監聽子元件觸發的事件。簡單來說,就是子元件監聽的事件,在函式內使用 emit...

Vue元件通訊

父子級通訊推薦使用 props emit parent children refs attrs listeners 子元件使用props 接收父元件傳遞的值 父元件向子元件傳值 子元件通過 emit 讓父元件接收事件,改變父元件的data裡面的值 子元件向父元件傳值 父元件 子元件 這裡的props...