ie input兼容 vue_Vue项目与IE11兼容

Vue不支持IE8及以下版本,因为Vue使用了IE8无法仿真的ECMAScript 5功能. 但是对于IE9 +,仅支持Vue的底层.

在开发过程中,我们经常使用一些第三方插件或组件. 对于这些组件,有时我们需要做一些处理. 下面主要说明如何使用vue-cli3脚手架项目来支持IE11.

IE11打开Vue项目(Vue CLI)进行构建,并显示空白页面,控制台警告和错误.

例如:

项目的package.json文件中的browserslist字段(或单独的.browserslistrc文件)指定了项目目标浏览器的范围. @ babel / preset-env和Autoprefixer将使用此值来确定需要翻译的JavaScript功能和需要添加的CSS浏览器前缀.

.browserslistrc

> 1%last 2 versions

not ie < 11

默认的Vue CLI项目将使用@ vue / babel-preset-appvue.js 浏览器兼容性,该应用程序使用@ babel / preset-env和浏览器列表配置来确定项目所需的polyfill.

默认情况下,它将useBuiltIns: 'usage'传递给@ babel / preset-env,以便它将根据源代码中显示的语言功能自动检测所需的polyfill. 这样可以确保最终包装中的填充胶数量最少. 但是,这也意味着,如果其中一个依赖项需要特殊的polyfill,Babel默认情况下将无法检测到它.

在Vue CLI中,提供了三种方法:

// babel.config.js

module.exports = {

presets: [

[@vue/app, {

polyfills: [

es6.promise,

es6.symbol

]

}]

]

}

提示: 我们建议您以这种方式添加polyfill,而不是直接将其导入源代码中,因为如果浏览器列表目标中不需要此处列出的polyfill,则会自动将其排除

我们使用最简单,最直接的方法(但性能并不是最好的方法)!

第一步: 在babel的相关配置文件(babel.config.js的babel字段,.babelrc或package.json)中添加“ useBuiltIns”: “ entry”信息. babel 7版本之后,会有差异-这里

babel.config.js

{

presets: [

[

@babel/preset-env,

{

useBuiltIns: entry

}

]

]

}

{

presets: [

[

@babel/preset-env,

{

useBuiltIns: entry

}

]

]

}

!!!信息令人困惑,通常有几种混合方式,这是不合理的!

第2步: 安装'@ babel / polyfill'并在条目文件中添加import'@ babel / polyfill'

$ npm install --save @babel/polyfill

main.js

import @babel/polyfill

请注意vue.js 浏览器兼容性,在Babel 7.4.0之后,该软件包已被弃用. 官方建议是改用core-js / stable和regenerator-runtime / runtime. -@ babel / polyfill

这时,我们已经根据官方要求进行了配置,重新启动了项目,发现它仍然不起作用! !

Babel-loader默认情况下会忽略node_modules中的所有文件. 如果要通过Babel显式转换依赖项,则可以在transpileDependencies选项中列出它.

下一步: 使用babel转换elementUI和vuex(需要Promise polyfill-在这里).

根据Vue CLI提供的三种解决方案中的第一种:

如果依赖项基于目标环境不支持的ES版本: 将其添加到vue.config.js中的transpileDependencies选项. 这将启用语法转换和基于此依赖项用法的polyfill检测.

vue.config.js

transpileDependencies: [/node_modules[/\\\\](element-ui|vuex|)[/\\\\]/],

根据您项目的实际情况,此处可能不需要element-ui

填充代理对象.

下一步: 在index.html文件中引入es6-proxy-polyfill.js

根据项目的实际情况,看是否有必要介绍. 如果已引入,建议先下载到本地,然后再导入.

至此,项目终于不是空白页了! !

但是,有很多印刷错误!

因为CSS var()在我们的项目中使用了很多,所以IE11不兼容,想法是一样的,只是找到相应的polyfill. 在这里,我们使用了css-vars-ponyfill

$ npm install --save css-vars-ponyfill

main.js

import cssVars from css-vars-ponyfill

cssVars({})

您完成了!

简而言之,所有处理都以兼容的方式围绕到IE11的转换. 对于JavaScript语法,它是babel的控件;对于CSS语法,需要进行具体分析.

不再对IE Microsoft进行维护,我们希望我们所有的前端朋友都能尽快摆脱这片苦海!

欢迎关注“超级前端”微信公众号

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-283774-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值