2018-09-23组件(非父子之间的通信)

非父子之间的通信

先声明一个中间值
var bus= new Vue
发送方用$emit()
接收方用$on()
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div id='app'>
       <child></child>
       <son></son>
   </div>
    <script src='js/vue.js'></script>
    <script>
      var bus=new Vue();  
        
      Vue.component('child',{//a
          template:`
             <div>
                <h2>我是child组件</h2>
                <button @click='sendMsg'>发送数据</button>
             </div>
         `,
          data:function(){
              return{
                  msg:'我是child组件中的数据,要传给son组件'
              }
          },
          methods:{
              sendMsg:function(){//发送数据
                 bus.$emit('send',this.msg)  
              }
          }
      })
      
      Vue.component('son',{//b
          template:`
           <div>
                <h2>我是son组件</h2>
                <a>{{mess}}</a>
           </div>
         `,
          data:function(){
             return{
                 mess:''
             }
          },
          mounted:function(){
            bus.$on('send',msg=>{
                console.log(this);
                this.mess=msg
            })  
              
          }
          
          
      })
        
        
      new Vue({
          el:'#app'
      })
    </script>
</body>
</html>
QQ拼音截图未命名.png

点击发送数据son组件中会显示来自child组件中来的值
使用了箭头函数=>用来指向组件中的内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 您将在本文当中了解到,往网页中添加数据,从传统的dom操作过渡到数据层操作,实现同一个目标,两种不同的方式....
    itclanCoder阅读 25,897评论 1 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,124评论 25 708
  • 加入运营学院前 剽悍行动营结束了,不舍得就这样消失,我想继续留在线上和他们互动,加深感情。我加入了由几个优秀的老铁...
    剽悍一只姬阅读 180评论 0 4
  • 早上本来今天想当一个伪球迷,回看葡萄牙&乌拉圭的球赛(就是为了看C罗),可惜没有找到完整的视频。只能带着遗憾只能码...
    小七地瓜阅读 152评论 0 1