Sapp
2020-11-19 11:12:47 +08:00
你要是认为微前端就是 single-spa/qiankun 那一套,那确实搞不搞都行
你要是认为微前端是 iframe 、路由分发、single-spa,那他是真的有意义,我个人也更愿意认同微前端就是这种路线,而不是特定的某个库,single-spa/qiankun 只是负责一种新的技术路线去实现他,未来也能有其他的技术方案代替 single-spa/qiankun,至于为什么用 single-spa 这个路线,而不是 iframe,你看看 iframe 的那几个缺点就知道了,路由分发也是一样,说这几个方案优缺点的文章简直海了去了
vue 、react 少数情况还真要一起写,我给你个实际例子,我这里之前全都是 react,他们搞了一套很麻烦的地图库(政府就指定要这玩意,换都不让你换),但是之前一个项目太忙了,干不过来想外包,之后就尴尬了,他们想让这个项目引用这个地图相关的一系列组件,但是外包只能搞 vue,搞 react 的要加钱,最后加钱发现他们都搞不定这个地图,iframe 倒是可以搞,但是问题在于中间有不少交互的地方要改代码传递给外层,让外层做,比如模态窗,做地图的人不愿意改这个代码。最后结果是这边找了一堆兼职的 react 去跟他们一起搞定的,工期还差点没赶上(当然这个锅项目经理肯定要背一部分)。但是这种情况并不是不存在,而你用 qiankun 那玩意,半个小时就能套进去了,也不用改代码也不用教他们,让他们自己看文档就行了,你这边在 webpack 导出的时候做个兼容,顺带导出个生命周期钩子的事情。
另外不是一定要 vue 和 react 一起写,还可以是不同版本的 vue 和 react,我自己就碰到过突然要兼容一个很久很久之前开发的页面的情况,最后看了好久还是跟产品说干脆重构重新写一个吧,那个代码时间太久了,实在懒得碰,一碰就炸。这种情况你用 iframe 或者 single-spa/qiankun,不就有用了吗?我还花那功夫重写干什么(当时没用 iframe 也是因为要改代码,不然能用是能用,体验是真的拉)