成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vue實現(xiàn)的組件兄弟間通信功能示例

本文實例講述了vue實現(xiàn)的組件兄弟間通信功能。分享給大家供大家參考,具體如下:

企業(yè)官網(wǎng)是企業(yè)形象的一張重要名片。成都創(chuàng)新互聯(lián)公司的成都官網(wǎng)定制服務(wù),能夠?qū)⒊啥季W(wǎng)頁設(shè)計與企業(yè)的實力&公信力、產(chǎn)品服務(wù)優(yōu)勢、文化價值觀等有機結(jié)合,把握企業(yè)的獨特之處,突出重點核心內(nèi)容,并以恰如其分的設(shè)計風格,抓住目標用戶的關(guān)注點和興趣點,幫助企業(yè)塑造好第一印象,成都營銷網(wǎng)站建設(shè)展現(xiàn)公司實力。成都官網(wǎng)定制,為你解決成都創(chuàng)新互聯(lián)網(wǎng)營銷解決方案。

兄弟組件間通信(event)

借助于一個公共的Vue的實例對象,不同的組件可以通過該對象完成事件的綁定和觸發(fā)

var bus = new Vue();

bus.$emit()
bus.$on()

熊大想要發(fā)消息給熊二,

接收方(熊二):事件綁定

bus.$on('customEvent',function(msg){
//msg就是通過事件 傳遞來的數(shù)據(jù)
})

發(fā)送方(熊大):觸發(fā)事件

bus.$emit('customEvent',123);

練習:

在熊二中 加上一個button,
點擊按鈕時告訴熊大:'快跑!'

接收方:事件綁定
發(fā)送方:觸發(fā)事件

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
  <script src="https://cdn.bootcss.com/vue/2.0.1/vue.min.js"></script>
 </head>
 <body>
 <div id="container">
    <p>{{msg}}</p>
    <xiongda></xiongda>
    <hr>
    <xionger></xionger>
  </div>
  <script>
/*借助于一個公共的Vue的實例對象,不同的組件可以通過該對象完成事件的綁定和觸發(fā)*/
//new一個對象,兄弟間的通信,將借助他事件綁定和觸發(fā)來實現(xiàn)
  var bus = new Vue();
  //熊大發(fā)送消息給熊二
    //xiongda組件
    Vue.component("xiongda",{
      methods:{
        sendToXiongEr:function(){
        //給熊二發(fā)送消息
        //觸發(fā)msgToXiongEr事件
          bus.$emit("msgToXiongEr","哈哈,光頭強來了");
        }
      },
      template:`
        <div>
          <h2>我是熊大</h2>
          <button @click="sendToXiongEr">Click Me</button>
        </div>
      `
    })
//熊二組件
    Vue.component("xionger",{
      template:`
        <div>
          <h2>我是熊二</h2>
        </div>
      `,
      mounted:function(){
//      給該組件綁定一個自定義事件和對應(yīng)的處理函數(shù)
        //調(diào)用bus中的on方法
        //事件的觸發(fā)一般是接收數(shù)據(jù)然后處理
        var that = this;
          bus.$on("msgToXiongEr",function(msg){
            alert("自定義的事件觸發(fā),接收到的數(shù)據(jù)"+msg);
          })
      }
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試,可得到如下運行效果:

vue實現(xiàn)的組件兄弟間通信功能示例

改版:熊大在input輸入數(shù)據(jù)傳遞給熊二

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
  <script src="https://cdn.bootcss.com/vue/2.0.1/vue.min.js"></script>
 </head>
 <body>
 <div id="container">
    <p>{{msg}}</p>
    <xiongda></xiongda>
    <hr>
    <xionger></xionger>
  </div>
  <script>
/*借助于一個公共的Vue的實例對象,不同的組件可以通過該對象完成事件的綁定和觸發(fā)*/
//new一個對象,兄弟間的通信,將借助他事件綁定和觸發(fā)來實現(xiàn)
  var bus = new Vue();
  //熊大發(fā)送消息給熊二
    //xiongda組件
    Vue.component("xiongda",{
      data:function(){
        return {
          xiongDaInput:""
        }
      },
      methods:{
        sendToXiongEr:function(){
        //給熊二發(fā)送消息
        //觸發(fā)msgToXiongEr事件
          bus.$emit("msgToXiongEr",this.xiongDaInput);
          this.xiongDaInput = "";
        }
      },
      template:`
        <div>
          <h2>我是熊大</h2>
          <input type="text" v-model="xiongDaInput"/>
          <button @click="sendToXiongEr">Click Me</button>
        </div>
      `
    })
//熊二組件
    Vue.component("xionger",{
      data:function(){
        return{
          recvMsgIs:[]
        }
      },
      template:`
        <div>
          <h2>我是熊二</h2>
          <p v-for="tmp in recvMsgIs">{{tmp}}</p>
        </div>
      `,
      mounted:function(){
//      給該組件綁定一個自定義事件和對應(yīng)的處理函數(shù)
        //調(diào)用bus中的on方法
        //事件的觸發(fā)一般是接收數(shù)據(jù)然后處理
        var that = this;
          bus.$on("msgToXiongEr",function(msg){
            //alert("自定義的事件觸發(fā),接收到的數(shù)據(jù)"+msg);
              that.recvMsgIs.push(msg);
          })
      }
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

感興趣的朋友還可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼的運行效果。

希望本文所述對大家vue.js程序設(shè)計有所幫助。

當前題目:vue實現(xiàn)的組件兄弟間通信功能示例
分享路徑:http://jinyejixie.com/article14/gpgege.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計全網(wǎng)營銷推廣、品牌網(wǎng)站設(shè)計做網(wǎng)站、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
阿鲁科尔沁旗| 理塘县| 海丰县| 南靖县| 宁化县| 赫章县| 行唐县| 静乐县| 阿尔山市| 喀喇沁旗| 安新县| 陵水| 云安县| 游戏| 冕宁县| 沅陵县| 无锡市| 屏东县| 德江县| 报价| 洪江市| 革吉县| 公安县| 白水县| 瑞安市| 嘉禾县| 宝清县| 安丘市| 丰都县| 从江县| 乐至县| 若尔盖县| 隆化县| 昌图县| 友谊县| 珲春市| 清远市| 南昌县| 仙居县| 汤原县| 延长县|