vue 解决IOS10低版本白屏的问题


Posted in Javascript onNovember 17, 2020

新公司是做自己的独立产品,比之前呆过的外包公司要求严格的多,注重用户体验,以下是在新项目里进行前端优化的一些操作

一,低版本空白屏问题,以及ios8的样式问题

本项目是通过vue-cli搭建,上线以后运行在新版本的苹果手机和安卓手机上均无问题。但是在ios8 9上出现了空白屏的原理,经过测试以后发现是低版本不兼容es6的语法,经过几番尝试找到了最优解。

1 空白屏问题

首先安装babel-polyfill,安装命令:npm install --save-dev babel-polyfill

安装成功后找到webpack.base.conf里把第16行的代码换成第17行的写法,如图1所示

vue 解决IOS10低版本白屏的问题

相同的页面,加入红色方框里的代码,如图2所示

{
  test: /\.js$/,
  exclude: /node_modules/,
  loader: "babel-loader"
  },

vue 解决IOS10低版本白屏的问题

2 样式问题

找到webpack.prod.conf文件,将注释代码替换成红色方框内的代码即可,如图3

vue 解决IOS10低版本白屏的问题

二 打包之后的文件以及生成的vendor文件过大的问题

1打包文件过大的问题

找到config底下的index.js文件,在69行的代码productionSourceMap:true,将true改为false。不然在最终打包的文件中会出现一些map文件,map文件的作用在于:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错。有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。但是这里为了瘦身大业,可以舍去。

2生成的vendor文件过大的问题

vendor文件里会将项目中vue vue-router mint-ui element-ui等库和框架一起打包压缩,这样必定会占用空间,造成压缩包过大。通常都有好几百k至少超过1M,在加载页面的时候会极度耗时。

这里建议使用cdn 然后在build里找到webpack.base.conf,加入平常不改动的库,如图4所示,然后在入口页面index.html导入相应的cdn

vue 解决IOS10低版本白屏的问题

同时要在项目里把诸如图5这样的导入都去除,否则打包的时候依然会占用空间,我项目里这样优化之后,vendor大小由239k优化到10k,减小的20倍

vue 解决IOS10低版本白屏的问题

三 压缩图片 ,推荐一个压缩图片的工具 https://tinypng.com/

如果有更改好的工具可以留言告知~

补充知识:vue-cli构建的移动端项目ios9以下打开页面空白问题

造成ios9一下页面空白问题,个人遇到的是项目npm run build之后,项目里es6没有转成es5造成的。

vue-cli构建的本身已经配置好babel,es6的转码,但是还遇到这个问题。

那么可能的原因是引入的文件没有转码,像我个人把http.js写在了static/js/http.js里了。 在static这个文件夹下。项目编译这个文件本身不打包。所有写在这里的es6没有转成es5.

所有要把js文件移入src下的assets,或者自建的文件夹

ios9以下页面空白如果是其他方面引起的可以考虑在pc端IE浏览器的Edge调试。把错误都排除了,能够页面显示出来,那么基本就成功了。

IE会报vuex requires a Promise polyfill in this browser这个错误,成这种现象的原因归根究底就是浏览器对ES6中的promise无法支持,因此需要通过引入babel-polyfill来是我们的浏览器正常使用es6的功能

解决办法:安装babel-polyfill这个依赖 cnpm install ?save-dev babel-polyfill

然后在build下的webpack.base.conf.js文件中,使用

const webpackConfig = {
 context: path.resolve(__dirname, '../'),
 entry: {
  app: ["babel-polyfill", "./src/main.js"]
 }

以上这篇vue 解决IOS10低版本白屏的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
jquery入门—访问DOM对象方法
Jan 07 Javascript
你必须知道的Javascript知识点之"this指针"的应用
Apr 23 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
Jan 30 Javascript
微信小程序实现YDUI的ScrollNav组件
Feb 02 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
Jun 01 Javascript
微信小程序实现的五星评价功能示例
Apr 25 Javascript
ES6中异步对象Promise用法详解
Jul 31 Javascript
vue.js的状态管理vuex中store的使用详解
Nov 08 Javascript
vue 使用v-for进行循环的实例代码详解
Feb 19 Javascript
js实现省级联动(数据结构优化)
Jul 17 Javascript
vue 判断元素内容是否超过宽度的方式
Jul 29 Javascript
JavaScript枚举选择jquery插件代码实例
Nov 17 #jQuery
html中创建并调用vue组件的几种方法汇总
Nov 17 #Javascript
解决vue项目中出现Invalid Host header的问题
Nov 17 #Javascript
vue的webcamjs集成方式
Nov 16 #Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 #Javascript
详解JavaScript原型与原型链
Nov 16 #Javascript
详解JavaScript执行模型
Nov 16 #Javascript
You might like
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
php常量详细解析
2015/10/27 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
简单通用的JS滑动门代码
2008/12/19 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
javascript实现切换td中的值
2014/12/05 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
python基础教程之循环介绍
2014/08/29 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
python实时监控logstash日志代码
2020/04/27 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
生产副总岗位职责
2013/11/28 职场文书
一年级学生评语大全
2014/04/21 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
杨善洲观后感
2015/06/04 职场文书
工作证明书
2015/06/15 职场文书
陪护人员误工证明
2015/06/24 职场文书
校运会新闻稿
2015/07/17 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
珍爱生命主题班会
2015/08/13 职场文书
合作意向书范本
2019/04/17 职场文书
PyTorch的Debug指南
2021/05/07 Python
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript