之前看过一本书《前端架构》,里面介绍微前端的时候,提到了 single-spa
,从那之后就感觉这微前端越来越火,后来还做过demo,后来发现太难了,看不懂demo,草草做了笔记便没有后续了。
这里尝试回顾一遍,重新认识 single-spa
微前端的概念和演进不再提及,这里我说一个愿景:
- 我们有两个项目,一个react,一个vue,都是独立部署可访问的
- 我们希望可以在一个页面里访问这两个项目,实现一个单页访问不同项目,同时能隔离样式、传递数据
为啥会有这两个想法,做重构项目、后端管理系统时候会常常遇到此类问题。
要这样做有啥技术点:
- 路由劫持,当我访问一个路由时候,能劫持他,返回我想要的数据
- 技术栈无关,能通用管理不同的app,封装统一的生命周期方法,方便app可以安装、卸载、重装
- 可以共享传递数据
那我们开始吧。
和珠峰的公开课一样,我们打算这么做:
- 准备两个vue项目,一个叫 parentVue ,一个叫 childVue
- 让parentVue 能访问 childVue 项目,实现路由劫持
这里我准备了一个git仓库,方便学习。https://gitee.com/xiaoxfa/learn-single-spa