為什麼我在2019年仍在使用jQuery?

banq發表於2019-05-28

許多人提倡“只使用vanilla JavaScript,你不需要jQuery”。
其實我覺得許多JavaScript API - 特別是DOM API - 很糟糕。 el.insertAdjacentElement('afterend', other)無疑是有效的,但$(el).after(other)實際上是方便的,比DOM給我們的要好得多。
標準JavaScript API中的許多常見操作都很尷尬;,你仍然需要輔助函式來執行各種常見任務。
新增任何依賴性都帶來了複雜性和檔案大小的成本,但jQuery並不是那麼大:預設構建是30K縮小/壓縮,如果沒有ajax的自定義構建和不常見的只有大小23K,使用querySelector而不是SizzleJS的構建是17K 。原來的30K和最佳化的17K對於我來說似乎都是可以接受的。
你可以看一下Bootstrap刪除jQuery的例子,說明使用vanilla JS需要付出多少努力:他們編寫了自己的幫助器,不得不放棄IE支援,因為它太難新增,使得API不相容(“我們打破了一切“),我花了一年半的時間研究它。如果我看一下最終結果,我真的不能說它好多了。
我理解他們為什麼這樣做; 人們想使用Bootstrap和Vue.js等等,使用Vue.js和jQuery有點傻。我非常贊成減少“網路臃腫” ,但我們需要務實和現實。包括~17K的jQuery真的那麼糟糕嗎?

有一些很好的理由不使用jQuery:如果你正在編寫你想要被其他人重用的程式碼,或者你只是編寫一個小函式。
使用“jQuery所有的東西”可能不是一個好主意,但也不是 “unjQuery所有的東西”。
我沒有和jQuery結婚,我很樂意使用一個“jQuery light”,它可以修復JS API,更加可口。YMNJQ推薦使用bonzo 和$ dom,還有其他幾個用於AJAX等等,但許多似乎沒有維護。此外,每個人都已經知道了jQuery。為什麼要用其他東西替換它,除非有令人信服的理由?

有些讀者可能會想“關於Vue.js,React或其他一些現代框架呢?”這篇文章的目的是將vanilla JavaScript與jQuery進行比較,而不是提出一個Grand Unified Theory of Frontend Development 。

話雖如此,我認為有幾個理由堅持使用簡單的JavaScript; 主要是因為我想構建快速的網頁,使用最簡單的可行程式碼,並儘可能多的人訪問。根據我的經驗,伺服器端生成的模板輕輕地撒上“漸進增強”風格的JavaScript通常是最好的方法。它通常更容易開發,往往更快,往往有更少的錯誤。

從根本上說,我認為網路是一個檢視文件而不是作業系統的系統。即使對於許多“網路應用程式”(無論你的意思是什麼),文件方法都能很好地工作。

相關文章