jQuery已经过时了,还需要学吗?

说起jQuery,很多刚参加工作的程序员都没用过,甚至没听过。曾几何时jQuery可是秒杀一切Js库,大有一统江山的情况,可是在顶峰的时候,瞬间被Vue、React、Angela三大框架斩于马下。

从百度指数,我们也看出在2015-2019是jQuery最高峰的时候,后面急转如下,基本回归到刚刚兴起的情景。

a83cb487d486f0dce5e6d3caceb7aa16.png

今天我结合jQuery从兴起、顶峰、凋零三个阶段聊聊我的感受,从中对于我们编程可以获得的启发。

兴起

jQuery在2005年的时候有了一个雏形,并在2006年发布第一个稳定版本,在2008、2009逐渐发展壮大起来。我接触jQuery是在2010年的时候,在那个时候还是原生JavaScript与jQuery并存的时代,那个时候操作元素还是document的时候,甚至为了复用代码,还自带封装一些Js库,类似代码如下:

//根据id,获取元素
function g(id)
{return document.getElementById(id);
}//根据class,获取元素
function gc(className)
{
return document.getElementByclassName(className);
}

其他更多的dom操作、动画、http请求等等,都需要自己进行封装,项目开发中,都需要自己编写大量的代码。

jQuery出现大大减少工作量,即倡导写更少的代码,做更多的事情,其独特的链式语法和短小清晰的多功能接口、高效灵活的选择器、可扩展性、以及丰富的插件,深深的折服了我。

当时为了了解jQuery的原理,还研究了jQuery的源码,自己模仿编写了一个,在研究源码过程中,也对于我学习编程也是有极大的触动和启发。

顶峰

最早期的网页对前端要求不高,Html代码基本都是在后台,直接生成返回,对Javascript要求不高,随着后面的发展,前端通过Js操作页面元素的场景增多,异步的请求、少量的动画效果等出现,都极大推进jQuery的发展与流行。

可以毫不夸张的说,每一个网站都在使用jQuery,但随着前端对交互体验要求越来越高,Js操作Dom元素也越来越多,操作Dom也成为了第一大工作量,前端的工作量、复杂度都极具的增大,这个时候就迫切的需要一个新的解决方案。

凋零

双向绑定思想的出现,直接规避了大量Dom的操作、数据与行为分离也降低了系统的复杂度,从此jQuery也完成了它的使命,慢慢退出舞台。

现在除了老项目,新项目也基本不会再选择jQuery了。

最后

从jQuery的发展进程,我们可以看出,技术的发展与业务场景是息息相关的。不同的业务需求,也会促进技术的发展、编程思想的发展。这侧面说明,架构的发展都是进化演变出来的。

而对于初学者来说,我认为jQuery确实没必要学了,毕竟时代已经变了。

- End -

觉得好看 点个在看👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bootstrap01

Bootstrap01内容概要 一.使用Bootstrap的步骤 1.下载Bootstrap类库,包含三个部分,fonts,css,Bootstrap 2.导入项目中,在头部引入JQ,css和Bootstrap 注意:JQ要引入在Bootstrap前面! 3.使用css样式时,全部使用class属性 二.全局CSS概要 1.仅支持H5文档格式 2.移动设备优先,需要在…

ios raise_如何在iOS 10中关闭“ Raise to Wake”

ios raiseRaise to Wake is a new Lock screen feature available in iOS 10. It allows you to wake your phone’s screen simply by picking up your phone. This feature is on by default, but if you’d rather not use it, it’s simple to turn off. “唤醒”是iOS 10中…

资源调度器调研

2019独角兽企业重金招聘Python工程师标准>>> 场景描述: 异步触发和Crontab触发 YARN(Yet Another Resource Negotiator)Hadoop 资源管理器 主要构成: RM(ResourceManager)是一个全局的资源管理器,负责整个系统的资源管理和分配。…

WPF-19 IValueConverter接口

我们先来看看微软官方给出的定语:提供将自定义逻辑应用于绑定的方法,我们来看一下该接口的定义,Convert提供了将数据源到UI的格式化,ConvertBack表示反向namespace System.Windows.Data {//// Summary:// Provides a way to a…

JVM学习记录-类加载的过程

类的整个生命周期的7个阶段是:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)。 类加载的全过程主要包括:加载、验证、准备、解析、初始化这5个…

使用 Azure CLI 将 IaaS 资源从经典部署模型迁移到 Azure Resource Manager 部署模型

以下步骤演示如何使用 Azure 命令行接口 (CLI) 命令将基础结构即服务 (IaaS) 资源从经典部署模型迁移到 Azure Resource Manager 部署模型。 本文中的操作需要 Azure CLI。 Note 此处描述的所有操作都是幂等的。 如果你遇到功能不受支持或配置错误以外的问题,建议你…

c++的进制转换函数

https://blog.csdn.net/u010003835/article/details/47665847https://blog.csdn.net/vir_lee/article/details/80645066strtol函数:用于由十进制转化到2~36的其他进制。函数原型为:long int strtol(const char *nptr,char **endptr,int base); 还应该注意…

黑苹果不能imessage_如何修复iMessage在iOS 10中不显示消息效果

黑苹果不能imessageiMessage got a huge update in iOS 10, adding things like third-party app integration, rich links, and a number of fun graphical effects for messages. If you’re seeing messages that say something like “(sent with Invisible Ink)” instead…

MyBatisPlus怎么忽略映射字段

TableField(exist false):表示该属性不为数据库表字段,但又是必须使用的。 TableField(exist true):表示该属性为数据库表字段。 Mybatis-Plus 插件有这个功能,可以看一下 TableName:数据库表相关 TableId&#xff1…

从技术总监到开源社区运营:过去两年,我都做了点啥?

这是头哥侃码的第267篇原创今天,这是我离开前公司的第 7 天。相信有不少吃瓜群众都很好奇,你这些天都在干啥?是不是蓬莱乐逍遥,过上了那悠闲的神仙日子?还是趁着疫情管控逐渐放开,和家人一起去深山老林里吸…

查看模拟器使用端口_为什么我们仍然使用模拟音频端口?

查看模拟器使用端口When leaks about what the chassis of the iPhone 7 might look like hit headlines earlier this week, technology columnists and industry analysts jumped on the chance to report that Apple’s next device may finally ditch its 3.5mm audio port…

ServletContextListener在Springboot中的使用

ServletContextListener是servlet容器中的一个API接口, 它用来监听ServletContext的生命周期,也就是相当于用来监听Web应用的生命周期。今天我们就来说说如何在Springboot 1.5.2这个轻量型框架中如何使用它。 其实配置ServletContextListener与其它Filter, Listener…

《ASP.NET Core 6框架揭秘》实例演示[34]:缓存整个响应内容

我们利用ASP.NET开发的大部分API都是为了对外提供资源,对于不易变化的资源内容,针对某个维度对其实施缓存可以很好地提供应用的性能。《内存缓存与分布式缓存的使用》介绍的两种缓存框架(本地内存缓存和分布式缓存)为我们提供了简…

常见端口介绍

Win常用端口 TCP端口(静态端口)TCP 0 ReservedTCP 1TCP Port Service MultiplexerTCP 2DeathTCP 5Remote Job Entry,yoyoTCP 7EchoTCP 11SkunTCP 12BomberTCP 16SkunTCP 17SkunTCP 18消息传输协议,skunTCP 19SkunTCP 20FTP Data,Amanda TCP 2…

如何更改Windows 10锁定屏幕超时

By default, Windows 10’s lock screen times out and switches off your monitor after one minute. If you’d like it to stick around longer than that–say, if you have background picture you like looking at or you enjoy having Cortana handy–there’s a simple…

ios 开发账号 退出协作_如何在iOS 10中的Notes上进行协作

ios 开发账号 退出协作iOS’ Notes app provides a convenient way to remember the great ideas you come up with and all the things you have to do. The app has evolved over the years, and iOS 10 adds even more features–including collaboration. iOS的Notes应用程…

poj 1182

食物链Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 86494 Accepted: 25887Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每…

条款6:若不想使用编译器自动生成的函数,就该明确拒绝

如果自己定义的类中并不需要copy assignment操作符或者copy构造函数,为了避免编译器自动生成因为编译器自动生成的没什么用,一般是按照顺序进行赋值或者拷贝,对于有对象内含有指针的话可能会出现一些问题可以在private中声明(并不…

为什么Android Geeks购买Nexus设备

The Galaxy S III is the highest-selling Android phone, but much of the geeky buzz is around the Nexus 4 – and the Galaxy Nexus before it. Nexus devices are special because they don’t have some of Android’s biggest problems. Galaxy S III是最畅销的Android…

你的知识死角不能否定你的技术能力

有些事情你不知道,但你一定能解决。 有些人通过我账号资料里的微信加我,然后问我一些所谓“怎么办”的问题,不是我不告诉你,而是我确实不知道。我确实有很高的title,也确实有很多的技术积累,但我并没有达到…