微前端-前端项目拆解简述
1、起因
1、系统庞大,涉及多个角色,角色互串,导致功能与功能之间的关系不清晰
2、角色对应的页面划分不清晰,系统和系统之间混杂在一起
3、前端项目过大,前端性能低下
4、组员多,项目管理难
2、拆解后的预期
1、优势
1、角色清晰、角色所属功能清晰
2、项目解耦,便于维护管理
3、项目上线,完全不会影响现有功能
4、性能进一步提升
5、拆解颗粒度足够细时,将不在限制于技术框架,对优秀人才的需求可以多元化
2、劣势
1、现有共用功能,难以实现共用,导致了代码冗余(持续迭代则是需要这么做)
2、第三方包多次引入,项目的总包增大(功能拆解后,对应的角色有对应的功能,绝大多数用户并不需要或者没有权限加载所有内容,整体包加载应当是降低的)
3、对项目管理要求提升,清晰各个系统之间的串联
4、全局性功能修改难度提升(bit)
5、严重依赖组件库(劣势4),依赖固有的规范,发布流程等(后期沉淀为自己的一套模式十分重要)
6、非常依赖于前期的规划或者经验丰富者
3、拆解维度
1、拆解将以系统层面拆解
2、以用户的角色拆解为子系统
3、子系统再拆解,拆解为独立模块项目
4、项目跳转则是路由+项目地址的方式跳转(又以系统为大目录,对应的下级模块为目录,并不会混乱)
4、项目拆解解析
目前业内并没有完美的解决方案,现在更多的解决方案是:iframe模式、多页面模式或者其他,各有优缺点,没有银弹。具体的实现,则不一一描述。