小程序嵌套组件中孙子组件之间的传值

之前做了无限嵌套的树形结构的功能,其实就是自定义组件嵌套的原理,现在新增需求:点击树图的某项,显示一个祖先组件中已经隐藏了的选项结构。

一开始想到了组件之间的传值,做了之后发现问题来了,点击第一层级的组件也就是子组件是没问题的,点孙子组件及其子代发现没有任何效果,通过打印发现根本就没有触发祖先组件中绑定的事件。原来小程序是不支持跨组件传值的,只能一层一层的传,子组件传递给父组件。比如A是引用嵌套组件的页面,即祖先组件,B是子组件,C是孙子组件......,A->B->C,点击B组件是可以触发A组件绑定的事件的,但是点击C组件只能触发B组件中绑定的事件,没办法直接去触发A中的事件。

解决方法:组件中监听自己发出的事件,一层一层的往上传递。

但是有个问题,就是数据量很大的时候,因为涉及到递归传递,性能会很差。在社区请教的时候,有大佬也是用的递归的方法,也是一样的问题,数据量大的时候性能差,目前没找到其他方法....不过对大多数情况是OK的

递归组件tree.wxml:

<view>
    <view bindtap='select_add'>xxx</view>
    <view class='ul' wx:if='{
  {item.children && item.children.length>0}}'>
        <tree treedata='{
  {
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值