ie11兼容方案(ant-design-vue在ie打开,系统白屏不报错)

编程知识 更新时间:2023-05-03 01:27:43

问题1:整个系统白屏,但不报错

原因

1、没有做路由懒加载。不做懒加载的话,默认是全部加载在首屏,ie浏览器性能差直接卡死。

2、ie无法识别一些es6+的api。Babel默认只转换新的js语法(如箭头函数),而不转换新的API,比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等新的对象或者方法。

简单的说,兼容问题一般是IE 对于es6 的部分新对象、表达式,语法并不支持,解决方案是使用 babel-polyfill 来正常使用ES6。

解决

1、路由懒加载(或用es6语法亦可)

const Home = resolve => require(['../views/Home.vue'], resolve)

2、api兼容:我们使用一种叫做 Polyfill(代码填充,也可译作兼容性补丁)的技术。(可在main.js中直接引入,也可以在vue.config.js中的入口处合并)

方案1(代替babel-polyfill的方案推荐)

// 在main.js中引用下列包
import "core-js/stable";
import "regenerator-runtime/runtime";

方案2(更新到7之后就不维护了,亦可以用)

import "babel-polyfill";

问题2:个别路由页面白屏

1、请检查个别页面是不是有路由,有的话是不是懒加载方式,是不是语法兼容需要将import改为require方式引用

2、检查是否引用第三方npm依赖,该依赖里面有使用到es6+的api语法,如果有,需要将其显示的使用babel编译,配置如下(本人项目中是引用了vue-grid-layout,在项目中视情况添加vue.config.js文件中)

transpileDependencies:[/node_modules[/\\\\](ant-design-vue|vuex|vue-grid-layout)[/\\\\]/]

问题3:哪些依赖需要被显示的babel

配置位置在vue.config.js文件中的transpileDependencies属性,是一个数组,我们的组件库和一些第三方功能的私包,还有vuex这些是需要放在显示的babel里面的,因为polyfill是不会去编译node_modules里的东西的,所以我们需要显示的写出来告诉它,也可以根据报错来知道是哪个包有问题。

问题4:样式问题,功能问题

上述基本就解决ie无法使用的问题了,起码是能看能用了~~

样式问题:经过测试,可能会有一些样式的功能的问题,自己要换个写法去解决,例:

// 不支持合并写法
overflow: hidden auto;

// 需改成如下写法
overflow-x: hidden;
overflow-y: auto;

功能问题:那只能具体功能具体看了,基本影响功能的就是js的语法了,这个ie和标准浏览器的差别,网上一查就知道了,例:

火狐、谷歌没有window.event对象,一般写成:function handle(e){e = || event;}

更多推荐

ie11兼容方案(ant-design-vue在ie打开,系统白屏不报错)

本文发布于:2023-04-29 21:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/dbef219bb74eeea415436b480c58c175.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   方案   系统   ant   白屏不

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 112235文章数
  • 28549阅读数
  • 0评论数