2019 年最值得學習的 JavaScript 框架與主題

又到了一年的這個時候:JavaScript 年度技術生態回顧。我們的目標是找出最有職業投資回報率的主題和技術。在實際生產中大家都在用什麼呢?現在的趨勢是什麼樣的呢?我們不會試圖去找出最佳,但是會使用資料驅動的方法,來幫助大家著重關注那些能幫助你在求職面試中回答“你知道 ____ 嗎?”的主題與技術。
我們不會去分析哪些是最快的,哪個有最好的程式碼質量。我們會假設它們都是速度惡魔(speed demons),並且它們都很棒,足以完成你的工作。而主要的關注點在於:什麼是被大規模使用的?
元件框架
我們要關注的大問題是當前元件框架的狀況。我們會主要關注三巨頭:React、Angular 和 Vue.js,主要因為在工作中,它們的使用遠遠超過了其他的框架。
去年,我注意到了 Vue.js 的(使用量)增長並提到了它可能在 2018 年趕上 Angular。事實上它沒有發生,但 Vue.js 的增長仍然非常快。我也預測了將 React 使用者轉化為其他框架使用者將會更加困難,因為 React 比 Angular 有更高的使用者滿意度 — React 使用者並不會有充分的理由去切換框架。與我對 2018年的預期一致。React 在 2018 年牢牢佔據了頭把交椅。
但有趣的是,三個框架每年仍持續著指數級的增長。
預測:React 在 2019 將繼續領先
在我們關注 React 的第三年,它 相比 Angular 仍有更高的滿意度 ,而且對於挑戰者,它不會放棄任何優勢。目前看來我認為在 2019 沒有能夠挑戰它地位的框架。除非有超級強大的東西出現並且擾亂了 React(社群),React 將會在 2019 年底繼續領先。
說到 React,它一直在變得更好。最新的 React hooks API 取代了我從 0.14 版本開始就幾乎不能忍受的 class API。(class API 仍然可以繼續使用,但是 hooks API 真的 更好 )。React 的 API 改進如更好的程式碼分割和併發渲染( 詳情 )將使它在 2019 年更難被打敗。不用懷疑,React 現在是目前對開發者最友好的前端框架。我沒有理由不推薦它。
資料來源
我們會關注一些關鍵點來評估在(這些框架)實際生產中的興趣和使用情況:
Google 搜尋的趨勢 。這並不是我最喜歡的指標,但是它是個不錯的巨集觀視角。
包下載量 。這裡的目的是獲取使用框架的真實使用者(資料)。
Indeed.com 上的招聘廣告 。用和去年相同的方法論來保持結果的一致性。
Google 搜尋趨勢

框架搜尋趨勢:2014 年 1 月 — 2018 年 12 月
在搜尋趨勢上,React 在 2018 年 1 月超越了 Angular,並且在這一整年剩餘的時間裡保持了領先的位置。Vue.js 在圖裡保持了一個可見的位置,但是仍然是搜尋趨勢中的一個小因子。對比:去年的趨勢圖:

框架搜尋趨勢:2014 年 1 月 — 2017 年 12 月
包下載量
包下載量是一個衡量實際使用情況的公平指標,因為開發者在工作是會頻繁地下載那些他們需要的包。
睿智的讀者會發現有時候他們從他們公司內部源的下載包,對於這種情況,我的回答是:“那確實會發生 — 對於這三個框架來說。”它們都可以在企業中立足,而我對這個大規模的資料的平均能力有信心。
React 每月下載量:2014–2018

Angular 每月下載量:2014–2018

Vue 每月下載量:2014–2018

讓我們看一下下載份額的快速視覺化比較:

“但你忘記了 Angular 1.0!它在企業中仍然很重要。”
不,我沒有。Angular 1.0 仍然在企業中被廣泛使用,這和 Windows XP 在企業中仍被廣泛使用是相似的。這個數量絕對足夠引起注意,但是新版本的 Angular 早已使 Angular 1.0 相形見絀,Angular 1.0 的重要性已經不如其他的框架了。
為什麼?因為整個軟體行業和 所有部門(包括企業) 的 JavaScript 的使用增長得很快,新的框架會使舊的框架變得很渺小,即使它是 永不升級 的遺產應用。
證據就是,看看這些下載量統計圖。2018 年單年的下載量就比之前幾年的 總和 都要多。
招聘廣告投放數
Indeed.com 集合了許多招聘部門的招聘廣告。每年 我們都會統計提到每個框架的招聘廣告¹ 來給大家提供關於企業在招什麼樣的人的更好的觀點。這是今年的形勢:

2018 年 12 月有關每個框架的招聘廣告統計
React:24,640
Angular:19,032
jQuery:14,272
Vue:2,816
Ember(不在圖中):2,397
再說一次,今年投放的職位總數比去年要多。我把 Ember 剔除了,因為它顯然沒有像其他框架一樣按比例增長。我不推薦為了未來找工作而去學它。jQuery 和 Ember 相關的崗位並沒有多大的變化,但其他的崗位都有很大的增長。
令人感激的是,加入軟體工程領域的新人在 2018 年也增長了很多,但這也意味著我們也需要持續聘用並培訓初級開發者(意味著我們需要 合格的高階開發者來指導他們 ),否則我們將無法跟上爆炸性的就業增長。作為對比,這裡有去年的圖表:

平均薪資在 2018 年也攀升了,從每年 $110k 到每年 $111k。有傳聞說,薪資列表落後於新員工的預期,並且如果招聘經理不去適應開發者的市場,不給出更多的加薪,他們會更難僱傭和留住開發者。留人和物色人才在 2018 仍然會是一個巨大的問題,因為僱員們會跳槽到別處有更高工資的職位。