V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xiadd
V2EX  ›  问与答

话说为啥要搞微前端,我想了很久都没明白

  •  
  •   xiadd · 2020-11-19 10:53:44 +08:00 · 1541 次点击
    这是一个创建于 1461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要说隔离,web 天然就是隔离的,要说不同技术栈统一管理,link 跳转不久得了?非得 vue 和 react 一起写?

    实在不行不还有 iframe,又不是不能用,微前端有啥好处?我想了十天十夜都没明白

    5 条回复    2020-11-19 11:12:47 +08:00
    momocraft
        1
    momocraft  
       2020-11-19 10:59:27 +08:00   ❤️ 1
    康威法则
    kop1989
        2
    kop1989  
       2020-11-19 11:04:59 +08:00
    @momocraft #1 学习了,丰富了知识。
    Yumwey
        3
    Yumwey  
       2020-11-19 11:05:24 +08:00 via Android
    微前端的概念,不是只指不同技术栈,不同业务线整合,可以看看 bit, 都是被阿里早期带偏了,其实微前端更适合说用来组件复用,业务复用,结合 WP5 的 MF 能力,可以很好的实现现代化的微前端应用。
    rioshikelong121
        4
    rioshikelong121  
       2020-11-19 11:06:18 +08:00
    KPI
    Sapp
        5
    Sapp  
       2020-11-19 11:12:47 +08:00   ❤️ 1
    你要是认为微前端就是 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 也是因为要改代码,不然能用是能用,体验是真的拉)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2832 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:17 · PVG 23:17 · LAX 07:17 · JFK 10:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.