1. 程式人生 > >2017前端技術大盤點

2017前端技術大盤點

(點選上方公眾號,可快速關注)

作者:laizimo

https://github.com/laizimo/zimo-article/issues/48

前言

臨近2017的尾聲,總是希望來盤點一下這一年中前端的發展。這一年,有一些新技術和新東西產生,同時,前端技術也慢慢的趨於穩固,自成一套體系。

正文

我們何處說起?自然是離不開那三駕馬車。

三駕馬車

自從2015年,react的問世,開始了三駕馬車時代的先河。同時,jQuery也逐漸讓出了其霸主的地位。後續的,angular開始了大型的改版,似乎想要追逐react的步伐。兩種完全不同思路的體現,在前端開發的技術棧中發光發亮。同時,Vue就像一匹黑馬一樣,一路披荊斬棘,快速地進步著。

因此,從2017年開始,3架馬車可以說是並駕齊驅。似乎需要看些對比資料,來表示它們目前的現狀。(來自國外的資料)

640?wx_fmt=png&wxfrom=5&wx_lazy=1

可以看到react的深紫色是最多的,表示使用者對於react還是十分滿意的。雖然,早前的React收到了協議的影響,但是,這似乎並不影響它在開發者心目當中的地位。另外,react如此受歡迎的另一個重要原因就應該是React Native了吧。今年以來,React Native一直以兩週一次的小版本更迭週期,迅速發展著。或許,2018年將會迎來最重大的正式版本1.0。(這個還是值得期待的。)

對於大多數開發者而言,學習了React的時候,對於它們學習React Native是有直接性質的幫助的,所以一般的國外開發者不會拒絕學習React這個框架的。

介紹完,React的情況,我們或許可以回望一下Angular的情況吧。

Angular可以說是一個最早問世的MVVM的框架。2009年,angular像一枚重磅炸彈一樣,震撼了前端的開發者們。當時,W3C似乎還未推出正式的Web Component標準。React和Vue也還在襁褓之中安眠。可想而知,之後的幾年Angular一直影響著後續前端的發展。但是,Angular有著許許多多的問題,也使得它在後續的框架之爭中,處於下風。2016年9月正式推出的angular2,將angular引領向了另一種形式——以HTML為中心的框架。一套完整的體現,其中加入了TypeScript+RxJS等組合,可想而知,一套內容的學習成本相當之高,與React以JS為中心的思想完全不同。不過似乎這一次Google將框架的定位目標換成了企業,國內外在使用這套框架的往往是銀行、證券類企業。不過,它的發展還是被看好的,畢竟它的背後可都是一群Google的頂尖開發工程師呢!!

最後,我們來了解一下三駕馬車中的黑馬——Vue。

從第一張圖中,雖然React一直處於領導地位,但是,Vue2的使用,也將於其他兩個框架持平快了。畢竟,在國內的前端環境中,Vue可以說是非常受歡迎的。(據說印度開發前端,會用Angular,中國人開發前端,會用Vue)不得不說的是,Vue與Weex的結合,雖然體驗不及RN,但是有著阿里的技術支援,也將有希望突破吧。

PWA

如果在國外,你今年聽到的熱詞一定會有PWA這個東西。前不久,Safari已經開始支援PWA了,那麼也就意味著PWA的時代不會太遠了。當然,國內實踐PWA的公司也不佔少數,例如餓了麼、阿里等。從去年開始,對其有所耳聞,到今年Google開發者大會上的現場演示,相信更多的開發者對於這門技術的狂熱。對於國內開發者而言,唯一不好的優勢應該就是文件了。因為目前來說,大部分的文件都是以英文的形式存在於GitHub或者國外書籍中的。翻譯過來的書,也不會這麼快的速度問世,所以目前研究PWA的中文資料少之又少。

不過相信,它的發展在之後的一兩年的是強而有力的。

國內的小程式

今年,在國內會被稱為“小程式年”。從1月份開始,微信正式將公測了小程式。繼而在7月份開始,支付寶也推出了相應的小程式。在國內,這樣子的重大訊息是不容忽視的。兩大巨頭之爭,推動的是無與倫比的流量紅利。基於小程式的開發,也將成為國內的前端的一大重點。將原用的整體化的內容,逐步分割成一個個小的模組,將至放入到微信這個大環境中去分享,最後起到一個引流的效果。回到技術的成面,小程式或許會有著與PWA一樣的思想,將之前在移動端難以為繼的Web端,放入到自家應用中,來確保它的長久與穩定。更多的是說,這兩者起到了異曲同工的效果。同樣的,這項技術,將在2018年持續發展下去,同時,也會有更多的前端投入到這項開發中去。

styled-components

這項技術,也是從上半年開始有所耳聞的。主要是作為react庫的衍生物的形式出現的。它將css部分的程式碼以js的形式展現在程式碼中,那麼之後只需要開發js就可以完成整個應用的開發了。同時,它還有一個好處,它的樣式是基於元件的,所以可以做到複用,同時,往往js的變數在css中去使用時,是一個令人頭疼的問題。而styled-components很好的解決了這個問題,因為它本身就是在元件中開發樣式,js的變數依然可以被使用在css的部分程式碼中。這項技術也是可期的,因為越來越多的人在自己的react專案中開始了這項技術的嘗試。

Rollup

這是啥?沒錯,又有一個模組打包工具來了。或許,大家熟知的更多的是webpack這個模組打包工具。今年的4月份,React做了一個大動作——在React的主分支上合併了一個PR,將當時的構建工具換成了Rollup。可想而知,這個東西將會是多麼的重要。好奇的是,它與其他的不同之處吧!它是一款基於ES2015模組進行打包的打包器。在過去的打包工具(包括webpack在內)中,都是基於CommonJS的規範去進行模組的打包的,所以,過去很多庫的前面總是會有一大堆webpack等自家的邏輯填充在開頭。Rollup不同,他是後天生的,出生的基準點就表明它的高度將不限於此。但是,相對於巨頭webpack來說,它或許在今年並未體現出它的優勢,但是相信它會厚積薄發的。

建議:在開發應用時,使用webpack,在開發庫時,可以考慮Rollup。

GraphQL

這個東西,或許在國內鮮有聞之。但是,它仍是一項不錯的技術,同時在調查中,也體現出不俗的潛力,如圖:

0?wx_fmt=jpeg

它是有Facebook開發的一款API查詢語言,或將替代Rest在後端的地位。雖然,目前來說,其效能並不是特別的優秀,也會bug不斷。但是,2018年或將是GraphQL的一年。那麼,和前端又有什麼關係呢?別忘了,我們手裡還有一個利器NodeJS呢!能夠用好它,對於你開發nodeJS,或許使用便利。

TypeScript

這一項由微軟老大開發的語言,處處在彌補著JavaScript的缺陷。一出生,就打著“取代JavaScript”的旗號,發展的速度也是驚人的。當然了,W3C也在努力的推進著JavaScript的進步,之後的幾年,應該會是著兩門語言並駕齊驅的發展吧。因為開發人口眾多,不可能走到誰取代誰的地步。

最後,貼出一張Stackoverflow上面的一項資料統計表吧!

0?wx_fmt=jpeg圖片來源:I just asked 23,000 developers what they think of JavaScript. Here’s what I learned.

總結

我們盤點了一年以來前端的發展,有著新技術不斷被推出著,相信前端會發展的越來越好。因為在JSConf大會上,有人發言說,之後將會發展成“前端+雲端”的組合。那麼,也並不存在全棧類開發的說法了。前端開發的小夥伴加油吧!!我們共勉

覺得本文對你有幫助?請分享給更多人

關注「前端大全」,提升前端技能

640?wx_fmt=png

640?wx_fmt=jpeg

淘口令複製以下紅色內容,再開啟手淘即可購買

範品社,使用¥極客T恤¥搶先預覽(長按複製整段文案,開啟手機淘寶即可進入活動內容)