Vue 2.0 默认支持 IE9 及以上版本,但具体说明如下:
Vue 2.x 的 IE 浏览器支持情况:
浏览器版本 | 支持情况 | 说明 |
---|---|---|
IE9 | ✅ 支持 | 需要 polyfill,不支持组件 v-model (表单绑定)在某些场景 |
IE10 | ✅ 支持 | 基本兼容,建议至少用这个版本 |
IE11 | ✅ 完整支持 | Vue 官方长期兼容的最低推荐版本 |
IE8 及以下 | ❌ 不支持 | Vue 2 放弃了对 IE8- 的支持 |
注意事项:
即使 Vue 本身支持 IE9+,你项目中使用的语法、依赖、构建工具也可能导致不兼容,比如:
💥 常见兼容性问题(尤其是 IE11)
-
Promise(IE 不支持,需要 polyfill)
-
Object.assign(IE 不支持,需要 polyfill)
-
Array.find() / Array.includes()(需要 polyfill)
-
ES6 语法(如箭头函数、解构赋值、let/const)需经过 Babel 编译
-
Element UI 某些组件在 IE11 渲染异常(建议使用 2.13.2 稳定版)
保证兼容 IE 的做法:
引入 Polyfill(推荐使用 core-js)
npm install core-js@2 babel-polyfill --save
在 main.js 最顶部引入:
import 'babel-polyfill'; // Babel 6
// 或
import 'core-js/stable'; // Babel 7+
import 'regenerator-runtime/runtime';
Babel 配置添加 IE 兼容目标
babel.config.js 示例:
module.exports = {presets: [['@babel/preset-env',{targets: {ie: '11'},useBuiltIns: 'entry',corejs: 2}]]
};
避免使用 Vue 2 不支持的语法特性
尽量不要在组件中使用原生 ES6+ 未转译代码。
总结
项目 | 建议最低 IE 版本 |
---|---|
Vue 2.x | IE11(推荐) IE10 勉强可用,IE9 需加很多 polyfill |
Vue CLI 构建项目 | 默认兼容 IE11,但你需要正确配置 Babel |
Element UI + Vue2 | IE11 兼容性最好,IE10 可能样式有细节差异 |