wepy 组件交互与通信

wepy.component基类提供 $broadcast ,$emit ,$invoke 三个方法实现组件之间的交互与通信。如:

    this.$emit('some-event',1,2,3,4);

监听组件之间通信与交互事件的事件处理函数必须写在页面或者组件的events对象中,例如:

    import wepy from 'wepy'

    export default class Com extends 'wepy.component'{

        components = {};

        data = {};

        metheds = {};

        events = {

            'some-event':(p1,p2,p3,$event) => {

                console.log(`${this.$name} receive ${$event.name} from ${$event.source.$name}`);

            }

        };

    }

}

1,$broadcast 是由父组件发起,所有子组件都会收到此广播事件,除非手动取消。事件广播的顺序为广度优先搜索顺序。

2,$emit 正好与$broadcast相反,事件发起组件的所有父组件都会依次收到$emit事件。

3,$invoke 是一个页面或者组件对另一个组件中的方法的直接调用,通过传入组件路径找到相应组件,然后再调用其方法。

    比如想在页面中调用组件ComA中的方法,this.$invoke('ComA', 'someMetheds', 'someArgs');

    比如想在组件ComA中调用组件ComG中的方法, this.$invoke('../../ComG', 'someMetheds', 'someArgs');

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值