在日常开发中,menu icon主要由三种方式:
-
使用自定义的svg
在antd pro的文档中描述了前两中方式,但是使用自定义svg的方式并没有在文档中出现。
我们知道antd pro中的菜单是在pro-layout的基础上又封装了一层,将很多配置项注入到pro-layout中。
现在需要将自定义的icon传给pro-layout,但是由于umi的影响,又不能直接在route配置中直接写组件。所以需要在antd-pro的入口文件中,将route中的icon手动转换成pro-layout MenuDataItem
中icon所接收的ReactNode。
接下来就是调用pro-layout中的api去修改菜单数据MenuData
,具体来说有两个api都能够修改,分别是menuDataRender
和postMenuData
。
这两个api据官方文档描述,在不需要国际化的情况下,使用postMenuData
修改数据能显著提升性能