公司现有多个项目上线,现在需要将这些独立开发、部署的项目进行聚合,从视觉上看,就像是一个项目,有登录页,主页有导航,导航里面包含二级、三级导航。但实际上,整个前端的项目,目前都是独立运行的,分别都有登录,现在要求就是想在整体看上去是一个项目,能够通过这些二级三级导航,去看到子项目中不同的页面。目前我司采用的方案是iframe,把每个页面都通过url的方式在主项目中用iframe进行整合(url是保存在资料库中的)。总感觉这种方式不太好,目前市面上有web components、single-spa等,经过调研,也不能完全支撑我们的开发,现在想请教一下还有没有其他方案
一行命令即可为你的 Vue 项目接入 Qiankun 框架,实现微前端架构
F-loat/vue-cli-plugin-qiankun?
github.com
提取一个公共的header.js文件,作为一个独立的包发布。存在多个spa项目,菜单都通过header.js渲染出来,在单个spa内跳转时是属于前端路由;通过菜单切换多个spa时,是属于后端路由。所有的项目划分到不同的二级子域下面,许可权管理通过sso顶级域名管理,解决登录问题。
各个项目之间天然隔离,也不会存在副作用。唯一需要维护的是菜单配置,建议统一拉取一个固定url配置文件更新,菜单配置文件更新后,所有项目同步更新。
特别有名的一个项目可以参考阿里云,基本上所有的路由都在二级子域下面跳转,最终解决了多项目发布上线管理问题,同时保证系统整体一致性。
我来讲一下FOLLOWME的吧。
今年上半年,团队内部沉淀出来了一个基于 Vue 的SSR库Genesis,有力的支撑了在FOLLOWME5.0 架构中,对于前端微模块、微应用、微前端和微服务化的需求。
微模块
一个服务,可以提供一小块内容,提供给其它服务调用,比如,它像是下面这样的。