点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

前端为什么都不再使用jQuery?这个问题其实也非常好理解,首先,你得知道jQuery给我们解决了什么问题。给我们带来了什么。有以下几个方面

比如

1. 快速选取元素

2. 方便操作DOM元素的API

3. 各个浏览器之间完美的兼容性

4. 链式操作,动画,AJAX等等

上面这些都jQuery带给我们的优势。之前,相对于原生API来说,确实给我们带来了操作上便利。

那现在为什么我们就慢慢不在使用jQuery了呢?我觉得有以下六个原因

一. 快速选择元素无优势

为什么说快速选择元素优势了?现在有两个API,只需传入CSS选择器形式的字符串,就可以匹配到预期的DOM节点。如下

浏览器兼容上这两个API也得到了很好的兼容

再者,Vue中也是使用些API进行元素获取的。所以说jQuery快速选择DOM节点的优势已经不存在了。

二. 方便操作DOMAPI有替代

对于操作DOM的API,如addClass removeClass等,原生API也有支持, classList,可能IE兼容不是太完美,但是最基本该实现的也都实现了。

三. CSS3动画崛起

动画就比较熟悉了,CSS3动画技术已经是非常成熟,完全可以取代jQuery动画,甚至更好的实现复杂动画,兼容性也好,加上还有比较方便使用的动画库Animate.css,大家一定非常熟悉,所以jQuery动画被取代已经很好理解了。

四. fetch/axios优于AJAX

现在原生JS实现fetchapi还是axios。都给我们提供了强大的ajax的能力,且axiox还有拦截器这个优势。这相较而言,是jQuery的ajax确实已经无法相比的了。加体积也小很多。在IE上fetch也有了polyfill方案(github/fetch)。这样就可以很方便的使用ajax,相对于jQuery就小巧很多。

五. 性能问题得到改善

关于性能问题,大家可以花点时间去很好的了解一下Virtual DOM(虚拟DOM)的概念,其实Virtual DOM就是相对真实现DOM节点来以最小变动来改变真实DOM。这只是一个思路,但jQuery在重绘,回流方面确实存在一定影响性能的问题。至于如何改善DOM操作性能,需要好好研究每一步JS操作,甚至每一个样式属性的使用。

六. 框架对jQuery的影响

目前有各种框架已经被广泛使用,比如React,Vue,Angular。这些都属于MV*框架,特点都是以数据为核心,操作DOM的事都留给框架去做,这相对于jQuery来来说,开发效率高,代码可维护性高,可扩展性高,性能更好。

再加上webpack打包(当然JQ也可以),脚手架的方便,新语法ES6/7的崛起,使得在编码体验上又上一个体验档次,所以函数式写码必然代替了命令式写码。

jquery获取浏览器版本号_前端为什么弃用jQuery?有这六个原因相关推荐

  1. php 判断百度浏览器版本,jquery获取浏览器类型和版本号的方法

    分享一个通过jquery获取浏览器类型和浏览器版本号的函数方法.具体jquery代码如下: $(document).ready(function(){ varbrow=$.browser; varbI ...

  2. jquery获取html页面参数乱码,JS或Jquery获取浏览器URL的参数值 汉字值乱码 并转码...

    1.获取url很简单,代码如下:window.location.href; 2.jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情 首先看看单纯的通 ...

  3. jq获取页面高度_通过 jQuery 获取浏览器窗口高度问题

    我曾经在使用jQuery一些东西的时候碰到了这样一些奇怪的问题.例如,我尝试着用 jQuery 的 $(window).height() 来获取浏览器窗口高度,就遇到了问题. 理论上,$(window ...

  4. PHP获取浏览器版本号

    更多时候,讨厌的ie让人生气,因些会有一些看不惯IE的人站出来,告诉用户们,赶快升级你们的IE或换个浏览器吧!!! 直接看PHP是如何获取浏览器版本的 //分析返回用户网页浏览器名称,返回的数组第一个 ...

  5. js和jQuery获取浏览器窗口的高度、宽度的方法详解

    有三种方法能够确定浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条). 对于Internet Explorer.Chrome.Firefox.Opera 以及 Safari: window.inn ...

  6. python+selenium小结5:获取浏览器版本号,当前URL,当前页面title

    from selenium import webdriver import timeoptions = webdriver.ChromeOptions() prefs = {'profile.defa ...

  7. java获取浏览器版本号

    2019独角兽企业重金招聘Python工程师标准>>> 今天在做文件下载时遇到 ie9 下载文件出现文件名乱码,于是网上查了下 通过判断浏览器版本来进行文件名的编码转换. 代码如下: ...

  8. jquery 获取同级元素_如何在jQuery中获取元素的同级

    jquery 获取同级元素 In this post, we will discuss how to get the siblings of an HTML element in jQuery. jQ ...

  9. 前端获取浏览器标识_浏览器缓存机制

    最近在项目中遇到了 IE浏览器因缓存问题未能成功向后端发送 GET类型请求 的bug,然后顺藤摸瓜顺便看了看缓存的知识,觉得有必要总结跟大家分享一下. 在前端开发中,性能一直都是被大家所重视的一点,然 ...

最新文章

  1. katalon进行app测试_使用Katalon Studio创建你的第一个API测试
  2. soft nms torch测试
  3. php关于路由,PHP URL路由类实例
  4. Bootstrap树控件(Tree控件组件)使用经验分享
  5. 关于使用spring admin和consul一起做监控需要注意的配置
  6. mybatis的二级缓存
  7. 文献记录(part37)--A two-stage hybrid ant colony optimization for high-dimensional feature selection
  8. 图数据集之cora数据集介绍 --- 适用于GCN任务
  9. 3D游戏建模就是那么简单
  10. 学html css之前,学习CSS前必知HTML基础
  11. DPDK 16.04/16.11.2 默认tx offload是关闭的引起tx vlan offload无效
  12. 【GNN】图神经网络综述
  13. mysql连接字符串 .net_.net MYSQL连接字符串参数详细解析
  14. linux编译C++代码
  15. 字符编码发展史和密码算法那些事儿
  16. 【推荐系统】推荐算法系列之DSSM双塔模型:Deep Structured Semantic Models for Web Search using Clickthrough Data
  17. [OpenCV] cv.remap() 重映射学习笔记/map1 map2易混点
  18. Ant Design Pro -- 02项目结构@20210331
  19. ExcelVBA:利用SUMIF和OFFSET+MATCH进行多条件求和
  20. 云服务的未来:下一个淘宝

热门文章

  1. PHP 错误与异常 笔记与总结(14 )记录和发送异常信息
  2. 实现工控机4U断电后自动重启功能
  3. SpringBoot简单使用ehcache
  4. oracle 删除表从回收站恢复
  5. Qt编程之右键单击QTreeWidgetItem弹出菜单
  6. Perl正则表达式--练习1
  7. Java虚拟机——Java内存区域与内存溢出
  8. scjp考试准备 - 2 - 逻辑运算及类型转换
  9. android 4.x环境搭建
  10. Bootstrap3.0学习第十轮(下拉菜单、按钮组、按钮式下拉菜单)