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.pswp.cn/news/280227.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280227.shtml
英文地址,請注明出處:http://en.pswp.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,也確實有很多的技術積累,但我并沒有達到…