欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2018年12月04日 12:01:33   作者:匿名的girl  
這篇文章主要介紹了vue實現(xiàn)的組件兄弟間通信功能,結(jié)合實例形式分析了vue兄弟組件間通信的原理與相關(guān)操作技巧,需要的朋友可以參考下

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

兄弟組件間通信(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);

練習(xí):

在熊二中 加上一個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","哈哈,光頭強(qiáng)來了");
        }
      },
      template:`
        <div>
          <h1>我是熊大</h1>
          <button @click="sendToXiongEr">Click Me</button>
        </div>
      `
    })
//熊二組件
    Vue.component("xionger",{
      template:`
        <div>
          <h1>我是熊二</h1>
        </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測試,可得到如下運行效果:

改版:熊大在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>
          <h1>我是熊大</h1>
          <input type="text" v-model="xiongDaInput"/>
          <button @click="sendToXiongEr">Click Me</button>
        </div>
      `
    })
//熊二組件
    Vue.component("xionger",{
      data:function(){
        return{
          recvMsgIs:[]
        }
      },
      template:`
        <div>
          <h1>我是熊二</h1>
          <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è)計有所幫助。

相關(guān)文章

  • 詳解vue如何給特殊字段設(shè)置插槽

    詳解vue如何給特殊字段設(shè)置插槽

    這篇文章主要為大家詳細(xì)介紹了vue如何實現(xiàn)給特殊字段設(shè)置插槽,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以學(xué)習(xí)一下
    2023-09-09
  • vue+springboot上傳大文件的實現(xiàn)示例

    vue+springboot上傳大文件的實現(xiàn)示例

    本文主要介紹了vue+springboot上傳大文件的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 解析Vue2 dist 目錄下各個文件的區(qū)別

    解析Vue2 dist 目錄下各個文件的區(qū)別

    本篇文章主要介紹了解析Vue2 dist 目錄下各個文件的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • vue與bootstrap實現(xiàn)時間選擇器的示例代碼

    vue與bootstrap實現(xiàn)時間選擇器的示例代碼

    本篇文章主要介紹了vue與bootstrap實現(xiàn)時間選擇器的示例代碼,非常具有實用價值,需要的朋友可以參考下
    2017-08-08
  • Vue.js移動端左滑刪除組件的實現(xiàn)代碼

    Vue.js移動端左滑刪除組件的實現(xiàn)代碼

    本篇文章主要介紹了Vue.js移動端左滑刪除組件的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue監(jiān)聽頁面滾動到某個高度觸發(fā)事件流程

    vue監(jiān)聽頁面滾動到某個高度觸發(fā)事件流程

    這篇文章主要介紹了vue監(jiān)聽頁面滾動到某個高度觸發(fā)事件流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue3?hook重構(gòu)DataV的全屏容器組件詳解

    vue3?hook重構(gòu)DataV的全屏容器組件詳解

    這篇文章主要為大家介紹了vue3?hook重構(gòu)DataV的全屏容器組件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • vue2如何實現(xiàn)vue3的teleport

    vue2如何實現(xiàn)vue3的teleport

    這篇文章主要介紹了vue2如何實現(xiàn)vue3的teleport,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 詳解vue+vueRouter+webpack的簡單實例

    詳解vue+vueRouter+webpack的簡單實例

    這篇文章主要介紹了詳解vue+vueRouter+webpack的簡單實例,非常具有實用價值,需要的朋友可以參考下
    2017-06-06
  • 詳解element上傳組件before-remove鉤子問題解決

    詳解element上傳組件before-remove鉤子問題解決

    這篇文章主要介紹了詳解element上傳組件before-remove鉤子問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評論