小程序自定义组件自定义事件

  1. 小程序中的自定义事件的发起者即子自定义组件 默认情况下不设置bubbles和composed两个参数时只能通过绑定在该自定义组件上(<自定义component bindcustomEvent>)行间的函数监听,不能在包裹该组件的组件或者标签中监听到
    例如
    //view上是不能监听到的,只能在子component行间监听到
    <子component bindcustomEvent>
  2. 默认情况下,自定义事件只能在引用了该自定义组件的组件(相当于是父组件)中通过该自定义组件上绑定的监听函数监听到,不能再在父组件的父组件中监听到该事件,也不能在该父组件中其他的组件或者标签中监听到,
    如果该自定义组件设置bubbles: true才会使父组件中的与该自定义组件有包裹关系的组件或者普通标签才会监听到,这时即使该自定义组件<自定义component bindcustomEvent>行间不写bindcustomEvent,与其有包裹关系的标签或者组件也是可以监听到的子组件中发出的自定义事件,即:
    //view上是可以监听到的
    <子componentt>

    但是依然不能跨越组件界限。例如
    //newComponent上是可以监听到的,虽然该子组件会作为插槽插入newComponent中,但是由于composed属性的限制,该自定义组件默认是只能在引用该自定义组件的节点上有效,不能越界进入其他任何组件内部的,
    <子componentt>

要想跨组件监听需要{ bubbles: true, composed: true }
然后配合参数{ bubbles: true, composed: true }中的主要参数composed才能实现自定义组件上绑定的事件可以跨越组件界限,能够进入与其有包裹关系的其他组件中,并在有包裹关系的其他组件中能够监听到
3. 不能传给父组件中的兄弟标签或者组件上。不加参数的话,组件的自定义事件只能在自定义组件行间进行监听

你可能感兴趣的:(小程序自定义组件自定义事件)