cabloy / zova

🚀A vue3 framework with ioc container. With the support of ioc container, defining reactive states no longer needs ref/reactive, nor ref.value
https://zova.js.org
MIT License
62 stars 3 forks source link

当a-demo模块禁用时,自动禁用菜单项 #6

Closed zhennann closed 2 weeks ago

zhennann commented 1 month ago

Video

issue消消乐:禁用demo模块

场景诉求

  1. a-demo模块允许禁用。但是当a-demo模块禁用后,仍然显示a-demo中的菜单项。这样,当点击菜单项时,找不到对应的页面组件
  2. 希望a-demo模块禁用后,不显示a-demo中的菜单项

方案分析

  1. 是否有一个机制,可以判断某个模块是否存在
  2. 如果可以判断模块是否存在,就可以在获取到菜单项后,进行过滤操作

开发任务

  1. 如何禁用模块
    • npm run build/preview查看效果
    • 顺便演示页面导航时异步加载模块的机制
  2. 模块元数据
  3. 增加module.exists方法:判断模块是否存在
  4. 对获取的菜单项进行过滤
    • 通过url来查找模块名称的方法在导航守卫中出现过
  5. 将判断path有效性的逻辑提炼为:$router.checkPathValid