ITPub博客

首页 > IT职业 > IT图书 > Vue组件通信

Vue组件通信

IT图书 作者:zzzhangyi 时间:2021-09-09 09:51:27 0 删除 编辑
  • 1) 父组件给子组件传值

利用Vue的组件机制,父亲组件通过 v-bind指令给子组件绑定一个属性,属性值为父组件要传递的数据(变量也可以),若父亲组件中对应的数据改变,子组件中同样会改变。

传递  父亲组件给子组件绑定一个属性:如下图

//传递 messageFromParent这个变量。//传递一个常量。

子组件接收  父亲组件给子组件绑定一个属性:如下图

props 是父组件用来传递数据的一个自定义属性,这里定义组件要接收的属性及属性的校验(关于属性校验请自行看官方的文档)

Vue.component('child',{
    props:['msg'],
});

相关示例代码

//子组件Vue.component('child',{
    props:['msg'],
    template:"#child"});//父亲组件Vue.component('parent',{
data(){  return {
    messageFromParent:"我是从父亲来的文字"
  }
},
template:'#parent',
methods:{
    changeMsg:function(){
        this.messageFromParent="传递过来的数据改变咯";
    }
}
});//建立vue实例var vm=new Vue({
  el:"#app",
  data:{

  }
});
  • 2)  子组件给父亲组件传值

  
//子组件Vue.component('child',{    template:"#child",    methods: {
      sendMsg() {        //发送信息
        this.$emit('diyevname','子组件发过来的信息');
      }
    }
});//父亲组件Vue.component('parent',{
data(){  return {    message:"我是初始消息"
  }
},template:'#parent',methods:{
    changeMsg(newmsg){        this.message=newmsg;
    }
}
});//建立vue实例var vm=new Vue({  el:"#app",  data:{}
});
  • 3)  非父子关系组件通信

原理:通过 事件中心 去注册事件监听及事件的触发。因为每个 Vue 实例都实现了事件接口(Events interface),通过这个可以实现事件的监听及触发。

  • vue 代码

//新建事件中心var EVENT=new Vue();//全局组件AVue.component('p-a',{template:'

我是A组件

',methods:{   add(){    //通过事件中心触发事件     EVENT.$emit('add',     {      id:21,      content:"花果山水帘洞111111",      time:'2016-12-13  12:14:56'     });   } } });//全局组件BVue.component('p-b',{ data(){  return {    msg:'我未接收到事件呢'   } },template:"

我是B组件,我负责接收事件

{{msg}}
", created(){    var _self=this;    //创建组件之后监听事件     EVENT.$on('add',function(data){       _self.msg="我接收到事件了,事件参数"+JSON.stringify(data);     }); } });//挂载vue viewModel到DOM =>相当于 ng-app  var vm=new Vue({    el:"#app",    data:{        msgs:[],        title:'首页'     }  });
  • Html

     



作者:小枫学幽默
链接:https://www.jianshu.com/p/09cff0f089f6


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3598/viewspace-2813493/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Android截图
请登录后发表评论 登录
全部评论

注册时间:2019-08-14

  • 博文量
    133
  • 访问量
    947