在vue1.0中父子元件通訊使用$dispatch 和 $broadcast,但是在vue2.0中$dispatch 和 $broadcast 已經被棄用。
因為基於元件樹結構的事件流方式實在是讓人難以理解,並且在元件結構擴充套件的過程中會變得越來越脆弱。這種事件方式確實不太好,我們也不希望在以後讓開發者們太痛苦。並且$dispatch
和$broadcast
也沒有解決兄弟元件間的通訊問題。
複雜專案中狀態管理可以用vuex,簡單父子元件通訊可以用$emit事件廣播,用$on接收事件資訊
子元件:
//子元件點選改變資料
父元件:
//父元件
@change-type 是v-on:change-type簡寫。以上是 子元件與父元件 通訊,跨級元件通訊以及兄弟元件通訊一樣可以使用$emit $on。 因為 vue 通過事件發射器介面執行例項,實際上你可以使用乙個空的 vue 例項。
var eventhub = new vue(); // 這個空例項只做通訊輔助用,可以理解為乙個事件處理中心。
任意元件a:
eventhub.$emit('add',1);
任意元件b:
event.$on('add',(n) =>);
另外,乙個簡單的方法,可以在例項化vue時,就在data塞入乙個new vue()
newvue(
這樣在其他地直接可以 this.$root.eventhub 訪問到這個空例項
廣播接收方法就直接可以用了:
//this.$root.eventhub 獲取eventhub物件並呼叫$emit方法
this.$root.eventhub.$emit('add', 1);
其他元件可以呼叫$on或$off 來監聽或解除廣播事件
this.$root.eventhub.$on('add', (n)=>);
Vue使用 emit on 進行元件通訊
第一步 建立乙個js檔案,引入vue,並返回乙個vue例項 import vue from vue export default new vue 第二步 在main.js中引入這個js檔案,並將其掛在到vue原型上 import tool from assets tool.js vue.protot...
vue2 0 父子元件通訊 兄弟元件通訊
父元件是通過props屬性給子元件通訊的來看下 父元件 content 注意這裡用駝峰寫法哦 data 子元件通過props來接受資料 第一種方法 props childcom 第二種方法 props 第三種方法 props 子元件與父元件通訊 vue2.0只允許單向資料傳遞,我們通過出發事件來改變...
vue2 0父子元件間通訊
父元件資料如何傳遞給子元件呢?可以通過props屬性來實現 父元件 這裡必須要用 代替駝峰data 子元件通過props來接收資料 方式1 props childmsg 方式2 props props 這樣呢,就實現了父元件向子元件傳遞資料.那麼,如果子元件想要改變資料呢?這在vue中是不允許的,因...