为什么越来越少的人用 jQuery?

2022-11-30 0 738

为什么越来越少的人用 jQuery?

为什么越来越少的人用 jQuery?

译者 | 未央

白眉林 | 胡春雨

责任编辑经许可转发

最晚期的合作开发,多半都采用jQuery,它给他们增添了许多的便捷:加速挑选出原素,方便快捷操作方式DOM原素的API,各应用程序间轻松的相容性,拉艾操作方式,动画电影、ajax之类都是jQuery为前端合作开发相关人员来带的益处。为何那时太少他用了呢?我来分几点,阐释我的设想:

为什么越来越少的人用 jQuery?

JS预览增添的压制

1.加速挑选出DOM结点

对绝大部分采用jQuery的合作开发技师而言,能加速选取DOM结点,那个毫无疑问是两个关键的其原因,但就现阶段情形而言,那个竞争优势或许早已不复存在了,为何呢?

跟大家说两个API,这两个API早已非常多的人在用了,就是document.querySelector和document.querySelectorAll方法。

这两个方法可以通过传入CSS选择器形式的字符串,就可以匹配到预期的DOM结点。以下是现阶段两个API的兼容情形:

为什么越来越少的人用 jQuery?

querySelector兼容情况

为什么越来越少的人用 jQuery?

querySelectorAll兼容图

从图中可以看到,这两个API早已很好的兼容各应用程序。

为什么越来越少的人用 jQuery?

所以说jQuery加速选择DOM结点的竞争优势早已不存在了。

2.方便快捷操作DOM原素的API

可以方便快捷操作方式DOM原素的API,比如addClass 、removeClass 、toggleClass。那时原生JS也得到了支持,那个API叫做classList。

为什么越来越少的人用 jQuery?

虽然说IE兼容的不太轻松,但最基本该实现也都实现了。

3.动画电影

那时CSS3动画电影技术早已非常的成熟,早已完全可以取代jQuery做的动画电影,而且还能比jQuery的Animate方法实现更复杂的动画电影,相容性好,性能消耗小,何乐而不为呢?

举个例子吧,比方说如果实现背景颜色过度,CSS3可以轻松的实现,但jQuery就不行。

并且那时早已出现了许多优秀的CSS3动画电影库,大名鼎鼎的Animate.css库大家肯定都有耳闻吧。

为什么越来越少的人用 jQuery?

现阶段CSS3动画电影的相容性

4.Ajax操作方式

jQuery的ajax操作方式,为他们省去了兼容应用程序方面的问题,并且也提供了简明的API去调用get和post,让合作开发者从繁琐的相容性与采用原生API上解脱出来。但那时,那个竞争优势也早已非常微小了。

不管是原生JS的Fetch API还是Axios。都为他们提供了强大的Ajax采用能力,并且Axios还有拦截器那个竞争优势。这时相较而言,jQuery的Axios确实早已无法相比了。

当然Fetch在IE上而言,肯定是没法用的

为什么越来越少的人用 jQuery?

Fetch相容性

但早已有了Fetch的Polyfill方案:github/fetch

这样只需要引用这两个小小的JS,就可以采用方便快捷的Ajax了。相较于jQuery,那是小巧许多的。

为什么越来越少的人用 jQuery?

性能问题

在原来的合作开发中,技师们不会太纠结于性能问题。但那时不同了,为了提高用户体现,首要的就是解决应用程序绘制所带了的性能问题。最经典的莫过重绘和回流这两个概念。

重绘:就是页面重新进行绘制,比方说,修改两个原素的背景颜色。

回流:一般而言,应用程序进入页面的时候就早已进行了一次回流,回流其实指的就是页面重新进行排版布局。

既然他们想提高性能,那么就可以先从这两概念入手,肯定是以最小的代价预览页面是提高性能最好的手段。但可惜的是,jQuery并没有做到。为何这么说,请看以下分析:

当他们拿到一组新闻数据要渲染到ul标签里时,通常他们会先将新闻数据逐条进行字符串拼接,紧接着采用$符选择ul原素,并修改ul的innerHTML的值为拼接好的字符串(采用html API),此时完成了第一次渲染。这次页面进行了重绘(这时必然的),首先不分析第一次的性能好或坏,用下两个说明将更加有力。

素重新删除,再重新添加一遍吗?答案肯定是不需要(下图所示,创建两个原素的代价有多大)。

为什么越来越少的人用 jQuery?

两个li结点上的所有属性

因为这时他们只需要将每两个li里的文字和a标签里的链接修改即可,那或许是没有必要像上面那样重新再添加一遍li的。

因为两个DOM原素,可能包含上百条属性,这对性能开销是很大的。

那么那时出现的新概念Virtual DOM(虚拟DOM),就可以解决那个问题。其实Virtual DOM就是对真实DOM结点的描述,通过改变Virtual DOM来以最小变动来改变真实DOM(Virtual DOM不一定真的比jQuery性能更好)。

那么,网上都说操作方式真实 DOM 慢,但测试结果却比 React 更快,为何?

为什么越来越少的人用 jQuery?

现代框架对jQuery的影响

那时国内比较火的React 、Vue 、Angular框架,都是属于MV*框架的范畴,其设计特点,主要是以数据为核心。

可以说操作方式DOM的事儿,就留给框架去做了。这比传统jQuery合作开发效率高,代码可维护性高,可扩展性强、性能好。

打个比方:

我让jQuery去买瓶酱油,给了他100块钱,这时他们需要告诉他去小卖铺的路怎么走、怎么跟老板说买啥酱油,买多少钱的酱油,找多少零钱,还得告诉他怎么回来(命令式)。

这时我让Vue去买酱油去了,这时我只需要给他钱,并且告诉他目的地在哪儿,买什么酱油即可,不需要手把手教他(函数式)。

这就是传统合作开发和现代框架合作开发的不同。

采用现代框架合作开发,可以采用Webpack(当然采用jQuery也可以采用Webpack),可以采用人家提供的现成的脚手架,比方说create-react-app,vue-cli。

极大提高了合作开发的效率,并且可以采用最新的ES6、ES7语法进行合作开发,在编码体验上,就提高了两个档次。

那时jQuery早已轻松地退出了历史的舞台,它早已完成了它所要完成的任务。

译者简介:未央,喜欢技术,喜欢分享,喜欢写文章的文艺前端技师。

【完】

微信改版了,

想加速看到CSDN的热乎文章,

赶快把CSDN公众号设为星标吧,

打开公众号,点击“设为星标”就可以啦!

为什么越来越少的人用 jQuery?

为什么越来越少的人用 jQuery?

推荐阅读:

写了 300000 行基础设施代码,我学到了这五条经验

PYPL 12 月 IDE 榜单:Eclipse 有望超越 Visual Studio

今日头条挖角微信;中国 iPhone 购买意创新低;小程序将分级 | 极客头条

老码农冒死揭开行业黑幕:如何编写无法维护的代

2018最后一战:25天编程PK赛!

想让马云成为你的老大?揭秘阿里面试情景

通证简史|从日进斗金到夹缝求存, 细数Token的前世今生

如何用 Python 实现选择排序?

为什么越来越少的人用 jQuery?

为什么越来越少的人用 jQuery?

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务