乐趣区

关于javascript:vue3-不支持-IE11的本质

文章很水,外围只有一句:因为 ES5 的限度,Proxy 语法无奈用 ES5 写进去(Proxies cannot be transpiled or polyfilled)

背景

近日,组群就 vue 3 的一段对话:

BOSS: 咱们团队哪个我的项目用 Vue 3 了(啥背景没说,底层员工当初毛线信息都得不到)

组长 A: 咱们用了,微前端主我的项目用的 Vue 3(看那,我的小组多先进)

组长 B:Vue 3 不反对 IE 11(老姐你用错了,抖什么伶俐)

。。。

我的问题

很菜的我忽然来了好奇心: Vue 3 为啥不反对 IE11,兼容性问题?不对、兼容性问题 polyfill 应该能够解决。

想在群里问,然而我职级最低没人鸟 ~ 小组 C 的群问了下,而后组长 C
(我组长)回复说:

不反对 IE 是后果,要剖析起因可不能“执果索因”— 个别随便归因进去的都不精确。
想理解为什么,无妨去读下 RFC 和 相干探讨

我狐疑他在抖伶俐,如同又不是。

不反对 IE11 的起因

所以我硬着头皮看了下英文,总结一下起因有三:

  1. Proxy 更香,Vue 团队想用
  2. Vue 团队想为干掉 IE 奉献一份力量
  3. 若反对,开发和保护老本都太高。

Vue 2 基于 ES5 getter/setters,Vue 3 基于 Proxy,若实现他们要逻辑双写。Vue 团队不想因为 IE11 做更多的就义, 如果将来再出个 Super Proxy 我就太难了。

Babel 呢

问题又来了,Proxy 的问题用 Babel polyfill 一下就完了吗?

Babel… 这个问题我不论

from babel

Unsupported feature
Due to the limitations of ES5, Proxies cannot be transpiled or polyfilled. See support in various JavaScript engines.

终于,我找到了根因:

Babel 的 transpiled 和 polyfilled 都没方法反对 Proxy 的性能个性。ES6 是 ES5 的后浪,不是闹的。

涨常识了,JS 的世界还有 Babel 搞不定的货色。

文章很水,外围只有一句:因为 ES5 的限度,Proxy 性能个性无奈用 ES5 的语法写进去(Proxies cannot be transpiled or polyfilled)

尤雨溪:Vue3 思考彻底放弃 IE 浏览器

退出移动版