• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

在小程序当中渲染树

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我们可以很轻松的去遍历一棵树,无论是广度优先遍历还是深度优先遍历,那么怎么在小程序当中渲染一棵树呢?

先看一下我们深度优先遍历的代码

function dfs(tree) {
    if(!tree) return
    console.log(tree.value)
    if (tree.children) {
        for(let i = 0; i < tree.children.length; i++) {
            dfs(tree.children[i])
        }
    }
}

可以看出,深度优先遍历的算法是利用递归,判断是否此节点有children属性,如果有就再次递归。

那么,我们小程序是不是可以定义一个组件,然后,这个组件接收一个object,然后在此组件内,判断object是否有children,如果有,就循环调用此组件,是不是就可以了呢?

下面我们来试一试。首先,我们来写一个组件,名字叫做 TreeNode,会接收一个参数 treeVal

<view>
    {{treeVal.value}}
    <view wx:if="treeVal.children" class="children_con">
        <block wx:for="{{treeVal.children}}">
            <TreeNode treeVal="{{item}}"></TreeNode>
        </block>
    </view> 
</view>

JS部分

Component({
    properties: {
        treeVal: Object
    }
})

CSS部分

.children_con {
    padding-left: 50rpx;
}

是不是很简单就实现了呢?

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap