vue2.0父子元件以及非父子元件如何通訊
1.父元件傳遞資料給子元件
父元件資料如何傳遞給子元件呢?可以通過props屬性來實現
父元件:
<parent>
<child :child-msg="msg"></child>//這裡必須要用 - 代替駝峰
</parent>
data(){
return {
msg: [1,2,3]
};
}
子元件通過props來接收資料:
方式1:
props: ['childMsg']
方式2 :
props: { childMsg: Array //這樣可以指定傳入的型別,如果型別不對,會警告 }
方式3:
props: {
childMsg: {
type: Array,
default: [0,0,0] //這樣可以指定預設的值
}
}
這樣呢,就實現了父元件向子元件傳遞資料.
2.子元件與父元件通訊
那麼,如果子元件想要改變資料呢?這在vue中是不允許的,因為vue只允許單向資料傳遞,這時候我們可以通過觸發事件來通知父元件改變資料,從而達到改變子元件資料的目的.
子元件: <template> <div @click="up"></div> </template> methods: { up() { this.$emit('upup','hehe'); //主動觸發upup方法,'hehe'為向父元件傳遞的資料 } }
父元件:
<div>
<child @upup="change" :msg="msg"></child> //監聽子元件觸發的upup事件,然後呼叫change方法
</div>
methods: {
change(msg) {
this.msg = msg;
}
}
3.非父子元件通訊
如果2個元件不是父子元件那麼如何通訊呢?這時可以通過eventHub來實現通訊.
所謂eventHub就是建立一個事件中心,相當於中轉站,可以用它來傳遞事件和接收事件.
let Hub = new Vue(); //建立事件中心
元件1觸發:
<div @click="eve"></div>
methods: {
eve() {
Hub.$emit('change','hehe'); //Hub觸發事件
}
}
元件2接收:
<div></div>
created() {
Hub.$on('change', () => { //Hub接收事件
this.msg = 'hehe';
});
}
相關推薦
vue2.0父子元件以及非父子元件如何通訊
1.父元件傳遞資料給子元件 父元件資料如何傳遞給子元件呢?可以通過props屬性來實現 父元件: <parent> <child :child-msg="msg"></child>//這裡必須要用 - 代替駝峰 </pa
vue2.0父子元件以及非父子元件通訊傳參詳解
1.父元件傳遞資料給子元件 父元件資料如何傳遞給子元件呢?可以通過props屬性來實現 父元件: <parent> <child :child-msg="msg"></child>//這裡必須要用 - 代替駝峰 </p
最詳細的vue的父子元件以及非父子元件之間的通訊方式
1.父元件傳遞資料給子元件父元件資料如何傳遞給子元件呢?可以通過props屬性來實現父元件://這裡必須要用 - 代替駝峰data(){ return { msg: [1,2,3] }; }子元件通過props來接收資料: 方式1:props: ['childMsg']方式2 :props: { childM
vue2.0父子組件以及非父子組件如何通信
tty rep create pla eve 16px markup div ont 1.父組件 >>> 子組件 父組件數據如何傳遞給子組件呢?可以通過props屬性來實現 父組件: <parent> <child :child-
[js高手之路]Vue2.0基於vue-cli+webpack父子元件通訊教程
在git命令列下,執行以下命令完成環境的搭建: 1,npm install --global vue-cli 安裝vue命令列工具 2,vue init webpack vue-demo 使用vue命令生成一個webpack專案,專案名稱為vue-demo 3,c
vue2.0在頁面中自定義元件模組,以及頁面與元件之間的資料傳遞
1.在頁面上引入寫好的元件import UpdataPassword from './updataPassWord' //updataPassWord為元件的name2.註冊元件components:{ //註冊元件 UpdataPa
[js高手之路]Vue2.0基於vue-cli+webpack同級元件之間的通訊教程
我們接著上文繼續,本文我們講解兄弟元件的通訊,專案結構還是跟上文一樣. 在src/assets目錄下建立檔案EventHandler.js,該檔案的作用在於給同級元件之間傳遞事件 EventHandler.js程式碼: 1 import Vue from 'Vue'; 2 export defau
vue2.0快取資料頁面與部分元件不快取資料頁面
轉自 https://blog.csdn.net/settingsun66/article/details/74909553keep-alive 快取所有元件。但是有些元件在我們的程式中是不想被快取下來的,就拿我現在的這個專案做比方吧。這個我是需要快取的,因為我要去選擇省份所
vue2.0中this.$refs獲取子元件屬性報undefined錯誤
首先,要強調一點,我的re被用來給子元件註冊引用資訊,引用資訊註冊在父元件的 $refs 物件上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子元件上,引用就指向元件例項: 當我呼叫下面這個語句想要改變子元件的data中的uid屬性時候 thi
VUE2.0 stylus封裝loading載入過渡元件
本文主要介紹如何封裝loading載入過渡元件,本文的樣式使用的stylus的寫法 1.在對應的公共元件目錄下,建立loading.vue(如果沒有安裝stylus,請現在package.j
深入解析React受控元件與非受控元件
本篇文章主要介紹了深入解析React受控元件與非受控元件,寫的十分的全面細緻,具有一定的參考價值,對此有需要的朋友可以參考學習下。如有不足之處,歡迎批評指正。 我們都知道,有許多的web元件可以被使用者的交互發生改變,比如:,,或者是我現在正在使用的富文字編輯器。這些元件在日常
淺析React中的受控元件和非受控元件
React中的受控和非受控表單並不複雜 你可能看到過很多文章,說不應該使用setState,refs不好……這是自相矛盾的。很難理解怎樣是對的,甚至連選擇的規則都不清楚。 那我們應該怎麼解決表單這個棘手的問題呢? 畢竟表單還是某些web應用的核
react中的受控元件,非受控元件;
剛開始react的時候就接觸到受控元件和非受控元件這個概念,然後那個時候長用的元件,比如input,select都是屬於受控元件。受控元件:<input type="text" value={this.state.value} onChange=
Vue2.0的三種常用傳值方式、父傳子、子傳父、非父子元件傳值
在Vue的框架開發的專案過程中,經常會用到元件來管理不同的功能,有一些公共的元件會被提取出來。這時必然會產生一些疑問和需求?比如一個元件呼叫另一個元件作為自己的子元件,那麼我們如何進行給子元件進行傳值呢?如果是電商網站系統的開發,還會涉及到購物車的選項,這時候就會涉及到非父子元件傳值的情況。當然你也可以
vue2.0之非父子元件通訊
在vue的1,0版本里,元件之間的通訊是通過$dispatch和$broadcast來進行通訊的,但是在2.0版本里面則取消上述這兩個方法,並提出了新的解決辦法。關於vue2.0的父子元件的通訊上文也有講過,現在要講的是非父子元件。 在vue官網中,官方推薦
【Vue】 vue2.0父子元件傳遞函式
學習筆記:在vue2.0中,父元件呼叫子元件時,想要將父元件中的函式體也做傳遞 1. 通過props :需要從子元件傳引數到父元件時適用 // 父元件.vue <template>
vue2.X基礎知識五之非父子元件通訊
在實際業務中,除了父子元件通訊外,還有很多非父子元件通訊的場景,非父子元件一般有兩種,兄弟元件和跨多級元件。1、中央事件匯流排(bus)處理任何元件通訊 在vue2.x中推薦使用一個空的Vue例項作為中央事件匯流排(bus),也就是一箇中介。例如:<div id=
vue2.0父子元件雙向繫結
父元件程式碼如下。這裡要注意的有: 1. 父組建使用msg向子元件傳遞資料。 2. 子附件向父附件傳送xxx訊息,父元件收到訊息後用abc方法來處理。 <template> <div> <input type="t
vue2.0非父子間進行通訊
com outer ont false one () 兩個 ret 通訊 在vue中,父組件向之組件通訊使用的是props,子組件向父組件通訊使用的是$emit+事件,那非父子間的通訊呢,在官方文檔上只有寥寥數筆, 概念很模糊,這個空的vue實例應該放在哪裏呢,光放文
Vue元件--非父子元件間的通訊
父子元件的通訊已經知道了,但是在實際的專案中如果需要拿到兄弟元件上的資料(非父子)那該如何是好呢? 其實Vue已經為我們提供了一套解決方案:使用中央事件匯流排; 非父子元件間的通訊,使用一個空的Vue例項來作為中央事件匯流排(就相當於中介一樣),用它來丟擲和監聽事件 &nbs