single-spa 做微前端遇到一个问题

2019-11-04 11:52:14 +08:00
 cl903254852

我用 single-spa + React 搭建微前端。

现在遇到一个可能比较低级的问题:

single-spa 建议所有的应用之间应该是兄弟关系,而不应该是父子嵌套关系。 那么问题来了:

主应用包含 Menu、Header,而我需要在图中的 Content 组件中来加载子应用,我该怎么办?

5398 次点击
所在节点    程序员
13 条回复
sparkinglemon
2019-11-04 13:06:14 +08:00
iframe,shadow dom,看你需要的兼容性和实际业务需求
sparkinglemon
2019-11-04 13:07:43 +08:00
content 内部使用 router 拆出去?
Fawen
2019-11-04 13:21:56 +08:00
content 里面用路由就行了
dartabe
2019-11-04 13:23:25 +08:00
把 menu 和 content 合起来写子组件里面
dartabe
2019-11-04 13:25:58 +08:00
错了 可以用这种路由 /content/:id 把 nav1 nav2 nav3 id 传过去 或者用 path 类传一个 state 过去
howel52
2019-11-04 13:33:25 +08:00
推荐一个基于 single-spa 的上层封装 [qiankun]( https://github.com/umijs/qiankun)
cl903254852
2019-11-04 14:12:46 +08:00
@sparkinglemon 需求就是上面说的。你说的我没怎么明白
cl903254852
2019-11-04 14:13:52 +08:00
@Fawen 实不相瞒,content 里面就是用的路由。现在问题是 content 是用来装子应用的,那子应用的挂载 dom 应该放哪
cl903254852
2019-11-04 14:15:13 +08:00
@howel52 👌 我来看看
DiamondYuan
2019-11-04 14:17:09 +08:00
@howel52 +1 推荐 qiankun
howel52
2019-11-04 19:40:58 +08:00
@DiamondYuan 手动狗头
kuitos
2019-11-18 23:37:37 +08:00
@DiamondYuan +1 推荐 qiankun
rioshikelong121
2019-12-18 15:47:14 +08:00
我的问题和你类似 我直接把子应用的挂载 DOM 放在主应用渲染出来的 DOM 里面了。
哥们你目前用的是 qiankun 还是 single-spa?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/616018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX