當子元件需要向父元件傳遞資料時,就要用到自定義事件。vue的子元件用$emit()來觸發事件,父元件用$on()來監聽子元件的事件。父元件也可以直接在子元件的自定義標籤上使用v-on來監聽子元件觸發的自定義事件。
使用要求:在子元件中通過$emit()把值傳遞給父元件,父元件使用v-on:***(或者使用語法糖@***);但是需要注意$emit()第乙個引數是自定義事件的名稱。
子元件內部通過this.$emit('方法名', 要傳遞的資料)
方式,來呼叫父元件中的方法,同時把資料傳遞給父元件使用。
在父元件上使用v-model指令,子元件使用this.$emit('input',this.子元件屬性)
儘管vue允許子元件去修改父元件資料,但在業務中,子元件應該盡量避免依賴父元件的資料,更不應該去主動修改它的資料,因為這樣使得父子元件緊耦合,只看父元件,很難理解父元件的狀態,因為它可能被任意元件修改,理想情況下,只有元件自己能修改它的狀態。父子元件最好還是通過props和$emit來通訊。
原理:父元件將方法的引用,傳遞到子元件內部,子元件在內部呼叫父元件傳遞過來的方法,同時把要傳送給父元件的資料,在呼叫方法的時候當作引數傳遞進去;
父元件將方法的引用傳遞給子元件,其中,getmsg是父元件中methods中定義的方法名稱,func是子元件呼叫傳遞過來方法時候的方法名稱。
子元件內部通過this.$emit('方法名', 要傳遞的資料)方式,來呼叫父元件中的方法,同時把資料傳遞給父元件使用。 Vue中父元件向子元件通訊
元件例項的作用域是孤立的。子元件的模板中是無法直接呼叫父元件的資料。可以使用props將父元件的資料傳給子元件。子元件在接受資料時要顯示宣告props 看下面的例子 here china panda div src script src script vue.component panda new ...
Vue中父元件向子元件通訊的方法
props 元件例項的作用域是孤立的。子元件的模板中是無法直接呼叫父元件的資料。可以使用props將父元件的資料傳給子元件。子元件在接受資料時要顯示宣告props 看下面的例子 頁面上展示的是 panda from china 處理屬性中帶 的問題 vue是不支援帶槓的寫法的。如果上述的here變成...
VUE 父元件子元件間通訊
父元件給子元件傳參,子元件通過prop屬性進行接收 簡單搭建元件部分如下,其中父元素身上有兩個資料,分別是字元型資料1,json型資料2 子元件分別從父元件獲取這兩個資料並展示,其次子元件有自己的資料 子元件通過 emit 事件想父元件發射資料 頁面結構 其中child a為子元件 這是父元件 父元...