VUE元件通訊

2022-07-31 00:51:15 字數 2246 閱讀 1051

一、父元件傳值給子元件:

通過props屬性接收資料:

props選項可以使用乙個陣列接收變數,也可以使用物件,當需要對props進行型別等驗證時,就需要物件寫法了。

驗證支援的資料型別:

string, number, boolean, array, object, date, function, symbol

使用方式:

vue.component('my-component', ,

//帶預設值的數字

propd: ,

//帶預設值的物件

prope: }},

//自定義驗證函式

propf: }}

})

補:駝峰標識:即:在vue中,v-bind繫結的屬性名不支援駝峰,例如在props裡面定義乙個cinfo物件,使用駝峰命名,在繫結該物件時就不能使用v-bind: cinfo = "info",它會找不到props裡面的cinfo物件,需要進行轉換才行,即寫成v-bind: c-info="info"

二、子元件向父元件傳遞資料

在元件使用this.$emit('事件名',值),傳送乙個事件,然後在父元件呼叫子元件的地方繫結該事件名,引數就是傳來的值。

//

子元件將value值傳給父元件

watch:

}

//

父元件接收(這裡使用了vue自定義標籤component,通過is屬性動態載入元件)

v-for="(item, index) in testitems":key="index":is="item.type":item="item"@getvalue="fgetvalue">

----------------------------------------

//js方法

methods:

}

注意:上述例子傳的是單個值,在寫父元件的@getvalue="fgetvalue"時,fgetvalue是省略了括號的,這裡會自動接收這個子元件傳來的值並傳給函式作為引數(傳來的有幾個值,在methods裡的fgetvalue()括號裡寫幾個引數就行)。也可以寫@getvalue="fgetvalue($event)",但是當子元件傳來多個引數時,使用$event只會接收傳來的第乙個引數。要想接收多個子元件傳來的值可以使用@getvalue="fgetvalue(arguments)",接收到的值會放到乙個陣列裡:

或者直接寫多個引數接收。

還有一種情況,既要接收子元件傳來的值,又要傳父元件自定義的引數:

子元件傳來的只有乙個值時:

this.$emit('getvalue', this.value1) //

子元件傳值

父元件接收:

@getvalue="fgetvalue($event,patentparam)"  //

parentparam父元件自定義引數

子元件傳來的有多個值時:

this.$emit('getvalue', this.value1, this.value2, this.value3) //

子元件傳值

父元件接收:

@getvalue="fgetvalue(arguments,patentparam)"  //

parentparam父元件自定義引數

三、父元件訪問子元件方式1、使用$children

使用this.$children獲取的是乙個子元件列表,可以通過索引獲取某個特定子元件,使用較少,不方便改動。

2、使用$refs

在子元件標籤上,使用ref屬性繫結子元件名稱,在父元件裡使用this.$refs可獲取所有子元件物件,再通過.名稱即可獲取某個特定子元件

四、子元件訪問父元件

使用this.$parent,不過一般不建議使用。

因為使用它之後會增加耦合度,使子元件的復用性變低。

使用this.$root訪問根元件,也很少使用。

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...