前言
随着侧边栏的东东越来越多..本来不考虑的三级菜单,也需要考虑进去了;
一开始都是手动map去遍历对应的组件, 相关的的组id这些也是简单的判断下children就返回一个值;
有兴趣的瞧瞧
---...此处省略N多重复规格的
复制代码
----
思路
我的思路是直接递归,写成一个函数式组件.
风格用了antd;
----
效果图
?...----
代码实现及用法
代码实现
递归组件函数
性能耗时
基于我项目的,就二十来个左右,最深是三层,用console.time()跑了下,性能还好
首次遍历树: 0.782958984375ms
第二次遍历树...: 0.385009765625ms
复制代码
里面的callback主要是由外部传递一个处理函数,比如跳转的处理等等
// 递归侧边栏
sidebarTree = (RouterTree, callback...) => {
// 判断是否有效的数组,且长度大于0[再去递归才有意义]
let isValidArr = value => value && Array.isArray(value);