Vuejs 用$emit與$on來進行數(shù)據(jù)傳輸通信

Vuejs 用$emit與$on來進行兄弟組件之間的數(shù)據(jù)傳輸通信
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Vue2-單一事件管理組件通信</title>
  <script src="vue.js"></script>
  <script type="text/javascript">
 
  //準(zhǔn)備一個空的實例對象
  var Event = new Vue();
 
  //組件A
  var A = {
    template: `
      <div>
        <span>我是A組件的數(shù)據(jù)->{{a}}</span>
        <input type="button" value="把A數(shù)據(jù)傳給C" @click = "send">
      </div>
    `,
    methods: {
      send () {
        Event.$emit("a-msg", this.a);
      }
    },
    data () {
      return {
        a: "我是a組件中數(shù)據(jù)"
      }
    }
  };
  //組件B
  var B = {
    template: `
      <div>
        <span>我是B組件的數(shù)據(jù)->{{a}}</span>
        <input type="button" value="把B數(shù)據(jù)傳給C" @click = "send">
      </div>
    `,
    methods: {
      send () {
        Event.$emit("b-msg", this.a);
      }
    },
    data () {
      return {
        a: "我是b組件中數(shù)據(jù)"
      }
    }
  };
  //組件C
  var C = {
    template: `
      <div>
        <h3>我是C組件</h3>
        <span>接收過來A的數(shù)據(jù)為: {{a}}</span>
        <br>
        <span>接收過來B的數(shù)據(jù)為: {梯轻}</span>
      </div>
    `,
    mounted () {
      //接收A組件的數(shù)據(jù)
      Event.$on("a-msg", function (a) {
        this.a = a;
      }.bind(this));
 
      //接收B組件的數(shù)據(jù)
      Event.$on("b-msg", function (a) {
        this.b = a;
      }.bind(this));
    },
    data () {
      return {
        a: "",
        b: ""
      }
    }
  };
  window.onload = function () {
    new Vue({
      el: "#box",
      components: {
        "dom-a": A,
        "dom-b": B,
        "dom-c": C
      }
    });
  };
 
 
  </script>
</head>
<body>
  <div id="box">
    <dom-a></dom-a>   
    <dom-b></dom-b>   
    <dom-c></dom-c>   
  </div>
 
</body>
</html>
Vuejs 用$emit與$on來進行跨頁面之間的數(shù)據(jù)傳輸通信
  • on和emit的事件必須是在一個公共的實例上滔悉,才能觸發(fā)曹宴。
新建bus.js
import Vue from 'vue'

export var bus = new Vue()
App.vue里created方法里定義事件
import { bus } from 'bus.js'
// ...
created () {
  bus.$on('tip', (text) => {
    alert(text)
  })
}
Test.vue組件內(nèi)調(diào)用
import { bus } from 'bus.js'
 // ...
bus.$emit('tip', '123')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苔巨,一起剝皮案震驚了整個濱河市资厉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诀豁,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翻伺,死亡現(xiàn)場離奇詭異吨岭,居然都是意外死亡,警方通過查閱死者的電腦和手機急灭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畴嘶,“玉大人,你說我怎么就攤上這事蟀瞧≡梦郏” “怎么了切端?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵钙蒙,是天一觀的道長马昨。 經(jīng)常有香客問我鸿捧,道長堆巧,這世上最難降的妖魔是什么恳邀? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮乳附,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘举农。我一直安慰自己颁糟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布婚脱。 她就那樣靜靜地躺著,像睡著了一般篮洁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锋叨,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天娃磺,我揣著相機與錄音,去河邊找鬼吆倦。 笑死晌梨,一個胖子當(dāng)著我的面吹牛须妻,可吹牛的內(nèi)容都是我干的敛惊。 我是一名探鬼主播瞧挤,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鸵鸥!你這毒婦竟也來了妒穴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤乏屯,失蹤者是張志新(化名)和其女友劉穎瘦赫,沒想到半個月后含友,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窘问,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了概疆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岔冀。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖侦高,靈堂內(nèi)的尸體忽然破棺而出奉呛,到底是詐尸還是另有隱情瞧壮,我是刑警寧澤咆槽,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布麦射,位于F島的核電站法褥,受9級特大地震影響揍愁,放射性物質(zhì)發(fā)生泄漏莽囤。R本人自食惡果不足惜惨远,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贺氓。 院中可真熱鬧,春花似錦扬蕊、人聲如沸莉测。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灸异。三九已至府适,卻和暖如春羔飞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背檐春。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工逻淌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疟暖。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓卡儒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親俐巴。 傳聞我的和親對象是個殘疾皇子缘圈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容