最近基于 single-spa 拆分了日渐庞杂的一个前端工程,工程本身基于 vite 开发,子应用也全部使用 vite ,这中间大小坑多少也踩的差不多了,子应用的 hot reload/unmount/自动切换子应用的环境 /根据权限渲染子应用 /数据、权限、方法共享巴拉巴拉......
搞完以后,索然无味,突然意识到,这个改造的过程中,似乎终极目标就是让子应用的使用体验就像是写在同一个工程内一样,问题来了,既然终极目标就是写在同一个工程内,那么为什么一开始我要拆分呢?难道仅仅是为了一个概念上的“微前端”???
前端子应用的本质是为了追求独立部署(也许吧),但是在实际业务中,子应用很可能是一个看似独立实则业务与父应用高度耦合的模块,这就不可避免子应用调用父应用诸多业务实现,你很少有独立存在的必要(起码在我接触的业务中是这样的),这就意味着一旦子应用脱离了父应用的环境,你就需要为这些原本属于父应用的业务能力打补丁,这就显得很冗余。
如果父子应用都写在一个工程内,通过修改构建配置,实现独立打包 /部署,那么不但可以避免最开始那些需要踩的坑,还能轻松共享不同应用间的业务 /组件能力,所以诸如 single-spa 的出现,解决的是哪些真实业务场景需求呢?我很迷惑。当然了,搞技术的嘛,贵在折腾,于我个人而言,我还是有收获的。
最后,有折腾的机会我还是会去折腾的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.