js文件里获取路由 vue_基于 Vue 技术栈的微前端设计思路与落地实践

本文介绍了基于Vue技术栈的微前端解决方案,包括预加载和懒加载两种路由方式。通过将前端项目拆分为多个子项目,实现了代码的模块化管理和独立部署,提高了开发效率和项目维护性。同时,文章讨论了方案的优缺点,并解答了关于子项目更新和缓存策略的问题。
摘要由CSDN通过智能技术生成

文章首发于 mcuking 的博客:https://github.com/mcuking/blog/issues/81

文章来自小伙伴 mucking 的投稿

项目地址:

preload-routes

https://github.com/micro-frontends-vue/preload-routes

async-routes

https://github.com/micro-frontends-vue/async-routes

mobile-web-best-practice

https://github.com/mcuking/mobile-web-best-practice

前几天看到了 微前端在美团外卖的实践,感觉和笔者所在团队实践了一年多的微前端方案非常类似,只不过我们是基于 Vue 技术栈的,所以也想总结一篇文章分享给大家。因为笔者文笔不算太好,其中借用了一些美团文章的一些总结性的文字,还请见谅哦~

背景介绍

对于大型前端项目,比如公司内部管理系统(一般包括 OA、HR、CRM、会议预约等系统),如果将所有业务放在一个前端项目里,随着业务功能不断增加,就会导致如下这些问题:

  • 代码规模庞大,导致编译时间过长,开发、打包速度越来越慢

  • 项目文件越来越多,导致查找相关文件变得越来越困难

  • 某一个业务的小改动,导致整个项目的打包和部署

方案介绍

preload-routes 和 async-routes 是目前笔者所在团队使用的微前端方案,最终会将整个前端项目拆解成一个主项目和多个子项目,其中两者作用如下:

  • 主项目:用于管理子项目的路由切换、注册子项目的路由和全局 Store 层、提供全局库和方法

  • 子项目:用于开发子业务线业务代码,一个子项目对应一个子业务线,并且包含两端(PC + Mobile)代码和复用层代码(项目分层中的非视图层)

结合笔者之前的采用分层架构实现复用非视图代码的方式(感兴趣的话请参考笔者之前的文章 前端分层架构实践心得),完整的方案如下:

06bc2e8821b9d4fa9761a126c910ecd3.png

如图所示,将整个前端项目按照业务线拆分出多个子项目,每个子项目都是独立的仓库,只包含了单个业务线的代码,可以进行独立开发和部署,降低了项目维护的复杂度。

采用这套方案,使得我们的前端项目不仅保有了横向上(多个子项目)的扩展性,又拥有了纵向上(单个子项目)的复用性。那么这套方案具体是怎么实现的呢?下面就详细说明方案的实现机制。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值