vue 不支持 IE8 及其以下版本,因为 Vue.js 使用了 IE8 不能模拟的 ECMAScript 5 特性,比如Object.defineProperty()此方法就会报错,
1、报错:ReferenceError: “Promise”未定义,原因是:Promise是es6的新语法,ie9和一些低版本的高级浏览器对es6新语法并不支持。
2、在vue根实例app.vue的<router-view />中渲染的路由,在ie浏览器里不显示但也不报错
3、IE浏览器并未报错,但页面是空白
上述三个问题的解决方法相同,引入babel-polyfill即可解决:
npm install --save-dev babel-polyfill
babel-polyfill用正确的姿势安装之后,引用方式有三种:
1.require("babel-polyfill"); // 在main.js文件中引入
2.import "babel-polyfill"; // 在main.js文件中引入
3.module.exports = { // 在webpack.base.conf.js文件中引入
entry: ["babel-polyfill", "./app/js"]
};
注:第三种方法适用于使用webpack构建的同学,加入到webpack配置文件(webpack.base.conf.js)的entry项中
重新执行构建命令,在低版本的浏览器中就可以正常打开页面了。也可以直接在main.js里引用:import "babel-polyfill";