Results 3 comments of bean

我正在看wujie,用的react,在写测试demo的时候,使用了父子应用保持浏览器url一致的方式,再刷新时,第一次子应用需要根据浏览器的url自己定位到对应的页面。看了一些issues,感觉很多逻辑要自己处理,wujie只作为一个沙箱容器使用。 https://github.com/ZNN-She/wujie-demo-test

在还没有乾坤、模块联邦的时候,自己写过类似模块联邦的实现方式,也使用过iframe单例,后来又实用模块联邦、乾坤,都遇到一些业务无法解决的问题。 1. js隔离其实还好,现在通过构建方式基本都能解决,比较头疼是css样式覆盖问题,特备是使用第三方库的时候,并不是所有的样式都使用了,css module、css in js这类方式,可能为了方便拓展,不然样式覆盖重写也比较头疼; 2. 集成,这其实感觉还好,就是加载文件--渲染,在我们早起是每个子应用把渲染方法都挂在到一个window对象上,需要就直接调用。有点类似jQuery插件的方式; 3. 通讯上实现上也是各种都尝试过,不过脱离不了“监听广播”的方式。 4. 路由问题,如果加上保活这需求,目前还没找到好的方案,之前用乾坤,发现在子应用之间切换时是无法保活的(或许自己保存样子页面实例可以); 5. 模块联邦,本质上应该和npm包的方式是一致的,只是模块联邦转到了线上,让包和应用进行了解耦。 6. Monorepo方式也了解过,感觉仓库管理都让人头大 这些应用也都在线上跑着,目前“路由+保活”这个方式好像都没解决,遇到最多的就是“公共样式”带来的问题,一步步走过来,样式各种覆盖。如果是全新项目,前期有约定好获取会好很多,但是大家的项目都是有简单到复杂,再拆分集成的。如果一开始就是用乾坤、wujie这种标准框架,或许问题会少很多(借用umi的一句话:约定大于配置)。另外跨部门也是大问题,技术难以统一,都是在各种兼容改造的路上前行。感觉最大的问题还是“统一管理”的问题,实现方式总是各式各样的。

因为用乾坤遇到了一些问题,就来看看wujie,没想到大家也有同样的问题