微前端-前端项目拆解简述


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模式、多页面模式或者其他,各有优缺点,没有银弹。具体的实现,则不一一描述。