国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue2.0父子組件及非父子組件之間的通信方法

2019-11-19 17:50:21
字體:
供稿:網(wǎng)友

1.父組件傳遞數(shù)據(jù)給子組件

父組件數(shù)據(jù)如何傳遞給子組件呢?可以通過props屬性來實現(xiàn)

父組件:

<parent>  <child :child-msg="msg"></child>//這里必須要用 - 代替駝峰</parent>data(){  return {    msg: [1,2,3]  };}

子組件通過props來接收數(shù)據(jù):

方式1:

props: ['childMsg']

方式2 :

props: {  childMsg: Array //這樣可以指定傳入的類型,如果類型不對,會警告}

方式3:

props: {  childMsg: {    type: Array,    default: [0,0,0] //這樣可以指定默認(rèn)的值  }}

這樣呢,就實現(xiàn)了父組件向子組件傳遞數(shù)據(jù).

2.子組件與父組件通信

那么,如果子組件想要改變數(shù)據(jù)呢?這在vue中是不允許的,因為vue只允許單向數(shù)據(jù)傳遞,這時候我們可以通過觸發(fā)事件來通知父組件改變數(shù)據(jù),從而達(dá)到改變子組件數(shù)據(jù)的目的.

子組件:

<template>  <div @click="up"></div></template>methods: {  up() {    this.$emit('upup','hehe'); //主動觸發(fā)upup方法,'hehe'為向父組件傳遞的數(shù)據(jù)  }}

父組件:

<div>  <child @upup="change" :msg="msg"></child> //監(jiān)聽子組件觸發(fā)的upup事件,然后調(diào)用change方法</div>methods: {  change(msg) {    this.msg = msg;  }}

3.非父子組件通信

如果2個組件不是父子組件那么如何通信呢?這時可以通過eventHub來實現(xiàn)通信.
所謂eventHub就是創(chuàng)建一個事件中心,相當(dāng)于中轉(zhuǎn)站,可以用它來傳遞事件和接收事件.

let Hub = new Vue(); //創(chuàng)建事件中心

組件1觸發(fā):

<div @click="eve"></div>methods: {  eve() {    Hub.$emit('change','hehe'); //Hub觸發(fā)事件  }}

組件2接收:

<div></div>created() {  Hub.$on('change', () => { //Hub接收事件    this.msg = 'hehe';  });}

這樣就實現(xiàn)了非父子組件之間的通信了.原理就是把Hub當(dāng)作一個中轉(zhuǎn)站!

以上所述是小編給大家介紹的vue2.0父子組件及非父子組件之間的通信方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 张家口市| 东丽区| 中西区| 镇远县| 南澳县| 兖州市| 都匀市| 新田县| 松江区| 洪雅县| 招远市| 吉隆县| 邯郸县| 榆树市| 乌拉特中旗| 黄梅县| 万盛区| 南华县| 昂仁县| 竹溪县| 梅河口市| 灵璧县| 峨山| 获嘉县| 全南县| 黄陵县| 康平县| 淮阳县| 离岛区| 康乐县| 城市| 绥中县| 九江县| 南召县| 方正县| 文山县| 湖口县| 聊城市| 吴忠市| 太原市| 德安县|