由于项目需要,需要让树状菜单的最后一层级横向展开显示。项目UI使用的是Ant Design,查阅了Ant Design Tree的API,目前是不支持我们所需要实现的效果。
查阅了网上的一些解决方案,有的是换组件,有的是解决了所有叶子节点横向显示,由于不想引用过多的第三方组件,简单利用Ant Design的Tree组件早了这个轮子,一般可以用作权限管理等功能使用。
解决思路:
1. 如何解决Ant Design 的横向显示问题。
解析Tree的结构,发现是一个Flex的容器,容器子节点使用column方式排列,改成row试试,哎哟,果然横向排列了。好了,第一个问题就这么解决了。
2. 如何判断最后一个节点。
这个问题就简单了,因为数据结构是自己定义的,那么就直接写个方法,判断节点下面的children是不是都为空,或者长度为0即可。
3. 性能问题。
在某个节点下新增1000个横向展开的节点,展开/关闭大约要1.5秒的时间,如果能关闭动画应该会更快点,只不过Ant Design Tree目前还没有找到好的关闭展开动画的方法,如果有朋友知道,烦请告知一下。
勾选/不勾选 的性能很受checkbox复选框的影响。把checkbox复选框的动画效果去掉,能从1.5秒提高到1秒左右。
先占个位置,后继补上代码。。。