基于vue3完成领域架构模型建设
引用抖音哲玄前端
这一章节复习完了,整体流程:基于领域模型A、B、C(model),派生出各个项目配置(project),通过project配置,通过service层解读到dashboard模板页中模板引擎中,通过模板引擎来解析这个DSL(dashboard的DSL,elspi/docs/dashboard.model.js),解析DSL就会生成整个站点去输出,例如基于elpis/app/pages/dashboard模板引擎,通过这个dashboard引擎解读DSL。
DSL->model:dashboard && menu(头部菜单)-> key && menuType===group ------ 递归menuItem && menuType === module -> modelType === sider ----siderConfig - 递归menuItem && modelType === iframe----iframeConfig && modelType === custom----customConfig && modelType === schema----schemaConfig
project(jd、pdd)里的文件都会继承model,像project只需要做一些针对性的配置即可,这是第一层的设计,基于领域模型再到项目再到出配置,为了沉淀百分之八十的体力活,针对开发百分之二十定制化需求的第一件事情。
如在header-view中用到了header-container,header-container中用到了sub-menu,读配置渲染头部菜单,右边用到了setting-content,下面用到了main-content。在侧边栏中,有sider-view里sider-container就会去接收侧边菜单,而侧边菜单又是每一个模块,点击菜单,同时右侧放置一个router-view渲染不同的模块+,dashboard也是核心放了个router-view,sider-view的router-view是为了渲染schema-view(百分之八十的重复性)、iframe-view(第三方链接)、custom(自定义页面),无论是头部菜单还是左侧菜单,都是点进去就这三种,通过一份数据源就可以生成对应页面。
如以dashboard模板的数据源,schema-view中有两个区域,搜索区域与表格区域,在model中对应着tableOption与searchOption,在searchOption中是表单搜索,tableOptions是传统表格,在model中希望哪个字段加入到tableOption与searchOption,就在对应的schema中写入tableOption与searchOption对象,在对象中有几个属性,例如comType,这个属性用于换input、inputNumber等拓展的小表单组件,如果是select,则要有enumList数组,数组元素中写入对象label与value键与对应的值,好确定下拉菜单内容。tableOption与searchOption也分别对应tableConfig和searchConfig,要在tableConfig中配置table中的按钮,样式,事件名,触发事件的组件,触发后的名称,触发的组件这类的请听下一章节。