官宣 Vue3.0 抛弃支持 IE,把精力集中在这个上面

点击⬆️方“逆锋起笔”,公众号回复 编程资源

领取大佬们推荐的学习资料


尤雨溪官宣

原因

自Vue 3的开发开始到2018年底,我们一直被要求提供IE11支持。许多用户询问Vue 3是否将支持IE11,我们最初的计划是发布Vue 3并使其稳定,然后添加稍后会支持IE11。

在漫长的开发过程中,我们还就IE11兼容性进行了研究和实验,但是由于所涉及的复杂性和手头上的其他工作量大,因此已将其优先处理。微信搜索公众号 逆锋起笔,关注后回复 编程资源,领取各种经典学习资料。

当我们再看一下2021年的今天的问题时,浏览器和JavaScript的状况已经发生了很大变化。现在,越来越多的开发人员正在使用现代语言功能,更重要的是,Microsoft本身已经开始通过对Edge的投资积极地将用户推离IE。

它还在自己的主要项目(如Microsoft 365)中放弃IE11支持。就在几天前,WordPress还决定放弃对IE11的支持。IE11的全球使用率已降至1%以下。当我们谈论面向公众的网站和应用程序时,IE11呈明显的快速下降趋势。

我们相信这是一个重新思考IE11对Vue 3支持的机会。

对Vue3 中支持 IE11的成本?

行为不一致

Vue 2的反应系统基于ES5 getter / setter。Vue 3利用ES2015代理获得了性能更高且更完整的反应系统,该系统无法在IE11中进行多填充。这是主要障碍,因为这意味着Vue 3要支持IE11,它实际上需要发布两个具有不同行为的不同版本-一个使用基于Proxy的反应系统,另一个使用类似于Vue 2的基于ES5-getter / setter的系统。。

Vue 3的基于代理的反应性系统提供了几乎完整的语言功能覆盖。它能够检测许多在ES5中不可能或不可行的操作,例如属性添加/删除,数组索引和length突变以及in操作员检查。为Vue 3的代理版本编写的相同代码在IE11版本中不起作用。这不仅给我们带来了技术上的复杂性,也给开发人员带来了持续的精神负担。

我们最初的计划是在IE11版本的开发版本中同时交付Proxy和ES5反应性实现。当它在启用代理的开发环境中运行时,它将检测并警告不兼容IE11的用法。从理论上讲,这是可行的,但由于需要将这两种实现混合在一起,并且在开发和生产之间存在行为差异的风险,因此造成了极大的复杂性。

长期维护的负担

支持 IE11 也意味着我们必须考虑在整个代码库中使用的语言特性,并为我们的发布版本找到合适的 poliyfill / 编译策略。

每一个不能在 IE11 中被 polyfill 的新特性都会带来新的行为警告。一旦 Vue 3 承诺支持 IE11,就永远没办法摆脱了,直到下一个大版本。

对于那些实在需要 IE11 支持的人

如果您需要 IE11 支持,我们的建议是使用 Vue 2。与其为 Vue3 和未来的版本承担巨大的技术债,我们相信,把工作重心放在让 Vue2 拥有更多 Vue3 类似的特性更有意义,让两个版本之间的开发体验更相似。

原文地址

  • https://github.com/vuejs/rfcs/blob/ie11/active-rfcs/0000-vue3-ie11-support.md

  • https://zhuanlan.zhihu.com/p/362000763

最后

技术大佬们都是怎么学习的?

未来,一个 APP 就知道你的全部!

新版 Win10 来了!丑哭了?

手把手教程:实现王者荣耀自动刷金币

虽然这样解释有点污,但是秒懂(23 种设计模式)


支持下 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值