谈谈菜单数据结构的渲染
前言
菜单,常见于中台系统中,表现形式如:在网页的侧边栏中的导航菜单,今天,我们不说如何实现一个手风琴的菜单,我们就来谈谈它的渲染,
它的渲染流程一般如下:
- 从服务器中获取菜单数据结构
- 服务器中的菜单数据 通过与本地的菜单,进行组合,得到一个新得菜单数据结构,带有component
- 渲染 有component 得菜单数据结构
数据结构
菜单的数据结构,一般如下:
来自服务器端得数据
1 |
|
本地的数据
1 |
|
可以看出,它是一个树状的结构,我们可以通过迭代去遍历它,但如何组合呢,最后得到我们类似与本地localMenu的
数据呢?不难看出,我们只要过滤LocalMenu就行了。但我们可以换一种方式来组合我们需要的数据,步骤如下:
- 先通过服务器端的出现的key 查找对应的component
- 遍历 服务器端的menu, 填充 component 即可
实现
getComponentByPath()方法
1 |
|
组合获取带有component的menuData
1 |
|
最后 渲染我们的filterMenus
1 |
|
小结
由于近期刷些算法题,才不至于对递归 晕头转向,递归对此数据类型简直是利器,但也要考虑调用栈溢出的问题,轻度使用便好
谈谈菜单数据结构的渲染
http://example.com/2020/05/11/旧的/谈谈菜单数据结构的渲染/