波神

Results 8 comments of 波神

> 我也遇到了类似的问题: > > 两个子应用:一个是用nextjs做的ssr,一个是正常的spa应用。 > > 切换时两个子应用因为都被embedHTMLCache,所以前一个子应用只能渲染出来html结构,所有的js不再重复加载,js对应的点击操作都丢失了。 > > 因为需要一个手动卸载方法,在切换子应用后将前一个子应用完全卸载掉。 > > 楼主给的方案可以满足目前的需求。 我目前是将`qiankun` 和`import-html-entry`自己进行fix,希望作者能采纳一下意见,自己维护还是挺辛苦的(手动狗头)

> 能po一下详细的实现吗,代码中类似embedHTMLCache方法和scriptCache变量都不知道从哪里获取的,同样的需求,提供了思路但是不知道怎么实现,挺急的,拜托求指导! 仔细看一下上面说的四点,需要你本地维护`import-html-entry/src/index.js`,然后本地维护`qiankun`去引入这个库并导出unupload钩子函数,在项目中去调用即可

> > 抱歉各位,最近比较忙,手上几个项目跟着的,React缓存还没研究完。上次Vue的方案,还有一点问题,`activated`与`deactivated`不会触发。修改如下: > > ``` > > let instance = null; > > let router = null; > > > > /* eslint-disable no-underscore-dangle */ > > > >...

> 还有一个场景分享一下,比如说对微应用进行了环境配置管理,开发者可以动态进行配置切换,配置决定了微应用的注册入口,现在看上去即使有了 unload 也没办法做到注册数据的重载,他只是把缓存重载了。 这里需要是取消注册应用,而不只是卸载应用 + 干掉缓存。 single-spa 支持 [unregisterapplication](https://single-spa.js.org/docs/api/#unregisterapplication),理论上改造一下 qiankun 应该就可以了。 可以根据自己的需要决定使用什么api,我的目的主要就是热重载,所以我觉得`unloadApplication `对我来说是最合适的。

看了一下源码,`wujie`会对子系统`iframe`中的`document.head.insertBefore`进行重写,以保证插入的元素能够正常进入iframe中。在不改动`wujie`源码的前提下,应该是做不到的。 1. 但是插入元素会触发`appendOrInsertElementHook`钩子函数,你可以对其进行拦截改造 2. 或者你可以采用` plugin`中的[css-ignores](https://wujie-micro.github.io/doc/guide/plugin.html#css-ignores)

试试使用真实的`window`: `__WUJIE_RAW_WINDOW__`;[全局变量](https://wujie-micro.github.io/doc/guide/variable.html)