在 IE11 中使用 Vue 3

Posted

技术标签:

【中文标题】在 IE11 中使用 Vue 3【英文标题】:Using Vue 3 in IE11 【发布时间】:2021-02-26 08:55:27 【问题描述】:

我知道有很多线程涵盖了 Vue 2 对 IE11 的支持,我知道它们与 polyfill 配合得很好。 但是可以 吗?如果没有,是否计划支持?

我尝试使用 Vue CLI @vue/cli 4.5.8,它当前安装了 vue@3.0.2(以及 Vuex、Router 和 Typescript 支持)。在我的 vue.config.js 中使用 transpileDependencies: ['vue-router'] 后,我设法让它在 Edge 中工作。 IE11 一直在抱怨“vue”npm 包。在编译它之后,我得到了Accessing the 'caller' property of a function or arguments object is not allowed in strict mode,我目前正在使用它。

我也尝试过 babel polyfills 和 vue 2 提到的其他技术,但没有成功。

【问题讨论】:

【参考方案1】:

Vue 3 使用 JS proxies 进行响应,任何版本的 IE 都不支持此功能(请参阅我的链接 - 滚动底部)

“兼容性”构建(与 Vue 2 具有相同的反应系统......与 IE11 兼容)过去曾被承诺过,似乎 it's coming "soon"(甚至 MS 已宣布终止对 IE 的支持)但没有高优先级 atm I假设...

v3.0.0 One Piece 发行说明: 迁移和 IE11 支持:由于时间限制,我们已经推迟了迁移构建(具有 v2 兼容行为的 v3 构建+迁移警告)和 IE11 构建,并计划在 2020 年第四季度重点关注它们。因此,用户计划要迁移现有的 v2 应用或需要 IE11 支持,此时应注意这些限制。

您可以尝试一些 ES6 Proxy pollyfils 或等待 Vue 3 兼容版本...

更新 (2021/03/15)

在最近的 State of the Vuenion 2021 talk for Vue AmsterdamEvan You 中,Vue 的创建者和首席开发人员承认他们正在“重新考虑对旧版浏览器的支持”

您可以自己观看,但我从中得到的是,他们看到需要做多少工作才能使生态系统的其余部分与 Vue 3 保持一致(Router/Vuex/Dev Tools/DX - 开发体验)并且他们有疑问(我同意这一点)当我们让 Vue 2 在 IE 11 中完美运行而 IE 11 对大多数用户来说实际上已经死了时,使 Vue 3 与 IE11 兼容的努力是值得的……

这与努力使 Vue 2 的 @vue/composition-api 更好,并努力为库作者创建指南和文档,以便他们可以创建在 Vue 2 和 3 中工作的 Composition API 库

这是暂定的,在没有公开讨论和社区反馈的情况下不会做出决定。因此,如果您有兴趣,应该很快就会有一个新的 RFC 准备好在Vue RFCs repo 中提供您的反馈

更新 (2021/04/08)

RFC 现在是posted and open for discussion

TLDR

There will not be a version of Vue 3 for IE 11。如果需要支持 IE 11,请使用 Vue 2....

【讨论】:

感谢您抽出宝贵的时间来保持最新状态。 ? 这是否意味着任何必须支持 IE11 的组织都不能使用 Vue?如果完全发布,Vue 2 的 LTS 似乎在 Vue 3 之后是 only 18 months。 @RayT 18 个月的 LTS 是可以的,因为 IE11 将在 about 7 months 中失去支持

以上是关于在 IE11 中使用 Vue 3的主要内容,如果未能解决你的问题,请参考以下文章

尤雨溪深夜官宣:Vue 3 将不再支持 IE11

vue兼容ie9-11

vue兼容ie9-11

vue开发使用vue-particles如何兼容IE11?

vue-cli3,ie11

Vue兼容ie9+