产品出了个需求,想参考目标网站上的树形菜单实现这个功能。
网站地址如下:
https://m.ztrust.com/?#/zgt/c...
看 Network 是一次性把数据请求回来,分一级、二级、三级菜单、...
点击 children 展开下一级,并带上关系(类似 echarts 的树图) ,直到 children 为空表示没有下一级
数据结构长这样的
data: [
{
children: [
{
children: [
{
children: []
}
]
}
]
}
]
求分析下思路。。并如何实现这个的功能
数据结构就是标准的数据结构,是一次性取出来,还是分层懒加载,取决于总的数据量,以及树形展开的方式。
目标网站的菜单数据中,第一层菜单始终显示在顶部,作为分类。之后的层次都是最多呈现两层,父级在左侧侧边栏,子级在右边主区域,如果是点了子菜单项,会将当前子级作为父级移到左侧,右边呈现下一层的菜单 ……
从上面分析来看,要实现这个东西并没有什么特殊之处,唯一能感到点新意的是关系线条。
目标网站的关系线条是用 DIV 来画的,控制好位置和宽度也不难,控制不好就有对不齐的现象(比如现在目标网站就是)。如果想把线条画得好看一点,也可以采用 Canvas 来画 ……
分析大概就这样,你觉得难点在哪?