中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
2019年前端的3個趨勢

2019年前端的3個趨勢

2019 前端 3 大趨勢:1、JavaScript 應(yīng)用范圍廣泛,靜態(tài)類型語言 TypeScript 會繼續(xù)得到更多開發(fā)者的青睞。2、組件成為前端最基本的物料,CSS 融合在組件中(CSS in JS)的方案日趨成熟。3、前端的“端”越來越多, API 查詢語言 GraphQL 會繼續(xù)保持高速增長 。

作者:蔣宏偉來源:58無線技術(shù)

2019 前端 3 大趨勢:

  • JavaScript 應(yīng)用范圍廣泛,靜態(tài)類型語言 TypeScript 會繼續(xù)得到更多開發(fā)者的青睞。
  • 組件成為前端最基本的物料,CSS 融合在組件中(CSS in JS)的方案日趨成熟。
  • 前端的“端”越來越多, API 查詢語言 GraphQL 會繼續(xù)保持高速增長 。

JavaScript 應(yīng)用范圍廣泛,TypeScript 更受青睞

在 github 2018 調(diào)查報告的中,JavaScript 連續(xù)多年穩(wěn)居第一,成為最受歡迎的開發(fā)語言。從 Stack Overflow 的調(diào)查報告中,我們可以看到更詳細(xì)的數(shù)據(jù),任意兩個開發(fā)者中至少有一個會 JavaScript,并且這個比例還在持續(xù)增長,從 2016年的 55.4%,到 2017年的 62.2% ,到 2018 年的 69.8%。在 npm 的調(diào)查報告中,JavaScript 生態(tài)圈也是非常繁榮,module 的數(shù)量繼續(xù)保持高速增長,將其他語言遠(yuǎn)遠(yuǎn)的甩在了后面。

圖一: npm 2018 調(diào)研報告 - Module Counts

從使用范圍上看,JavaScript 可以寫前端、服務(wù)端、移動端,甚至還可以寫物聯(lián)網(wǎng)應(yīng)用。在 npm 2018 的調(diào)研報告中,大多數(shù) JavaScript 開發(fā)者*寫 web 前端應(yīng)用(93%)和 node.js 服務(wù)端應(yīng)用(70%)。在 stateofjs 2018 的調(diào)研報告中,還有相當(dāng)數(shù)量的 JavaScript 開發(fā)者*寫移動或桌面應(yīng)用,例如 Electron(19.6%)、React Native(18.7%)、Native Apps(10.6%), Flutter 、Weex、PWA 都在 1% 以內(nèi)。

備注:npm 和 stateofjs 的調(diào)研用戶群體特征類似,統(tǒng)一歸類為 JavaScript 開發(fā)者。

圖二: npm 2018 調(diào)研報告 - The JavaScript I write runs on...

值得注意的是,TypeScript 在 2018 年得到更多開發(fā)者的青睞。在 github 語言排行版中,TypeScript 上升了 3 名,排到了第 7 的位置。在 stateofjs 2018 的調(diào)研報告中, JavaScript 開發(fā)者有 86.3% 愿意繼續(xù)使用 ES6,有 46.7% 愿意繼續(xù)使用 TypeScript。排在第三、四的是 Facebook 的 Flow 和 Reason 語言,但是占比都不高。

圖三:stateofjs 2018 調(diào)研報告- JavaScript Flavors

從互聯(lián)網(wǎng)的發(fā)展歷史的角度看,2010 年 3G (國內(nèi))開始普及,2014 年 4G 全面鋪開,拉開移動互聯(lián)網(wǎng)的序幕。互聯(lián)網(wǎng)從傳統(tǒng)的內(nèi)容提供者,轉(zhuǎn)變成了服務(wù)提供者。前端應(yīng)用也發(fā)生的本質(zhì)的轉(zhuǎn)變,從傳統(tǒng)互聯(lián)網(wǎng)時代的內(nèi)容展示,轉(zhuǎn)變成了擁有復(fù)雜交互的邏輯的服務(wù)提供窗口。隨著前端應(yīng)用變得越來越復(fù)雜,和 JavaScript 應(yīng)用的領(lǐng)域越來越廣泛,傳統(tǒng) JavaScript(ES5) 已經(jīng)適應(yīng)復(fù)雜的開發(fā)需求,因此功能更加強大的 ES6 孕育而出。

在 JavaScript 應(yīng)用復(fù)雜度不斷增加的背景下,預(yù)計 2019 年,靜態(tài)類型語言 TypeScript 會繼續(xù)得到更多開發(fā)者的青睞。TypeScript 屬于 ES6 的超集,一方面它可以很好的兼容 ES6 語法,另一方面它又提供了可選的靜態(tài)類型檢查和 接口(interface)的功能。在開發(fā)復(fù)雜度高、需要大規(guī)模合作的 JavaScript 應(yīng)用時,TypeScript 相對 ES6 不妨是一種更好的選擇。

組件成為最基本的前端物料,CSS in JS 讓組件化更徹底

在 stateofjs 2018 的調(diào)研報告中, JavaScript 開發(fā)者有 64.8% 愿意繼續(xù) React,有 28.8% 愿意繼續(xù) Vue。但根據(jù)個人觀察,在國內(nèi) Vue 開發(fā)者會比 React 多一些,這可能是因為 Vue 上手簡單并且有完善的中文文檔。Angular 方面,有超過一半使用 Angular 框架的開發(fā)者表示,不愿意繼續(xù)使用 Angular 進(jìn)行開發(fā)了。而其他開發(fā)框架 Preact、Ember、Polymer、JQuery 的使用量都很少?,F(xiàn)在,React 和 Vue 已經(jīng)成為前端開發(fā)框架的雙雄,不會 React 或 Vue 可能連工作都不好找。

圖四:stateofjs 2018 調(diào)研報告 - Front-end Frameworks

組件是 React 和 Vue 最強大的功能之一。在 Vue 中一個 .vue 文件就是一個組件,包含 Template、JS、CSS 三個部分,其中 CSS 部分是可選的,開發(fā)者也可以將 CSS 獨立出去。在 React 中一個 .jsx 文件就是一個組件,但是 JSX 只能包含 Template、JS 兩個部分,組件的 CSS 部分必須import from 'xxx.css' 進(jìn)來。

無論是 React 還是 Vue,都改變不了 CSS 全局作用域的問題。開發(fā)者可以在一個組件中,通過 Selector,如 .class .id ,取到本該屬于其他組件的 CSS 樣式。組件本應(yīng)是一個獨立的作用域,但是它的 CSS 竟然是全局的!在應(yīng)用復(fù)雜度低、單人開發(fā)的情況下 CSS 全局作用域不算大問題。但是在多人合作開發(fā)的場景下,可能會因此導(dǎo)致樣式?jīng)_突。比如,因為引入了 B 開發(fā)者的組件,A 開發(fā)者的組件樣式錯亂了,這就導(dǎo)致了較高的聯(lián)調(diào)成本。

圖五:CSS document level V.S. component level

解決的思路就是,使用 CSS in JS 的工具,使得 CSS 只對它歸屬的組件生效。CSS in JS 的方案有很多,主流的有:styled-components、emotion、css-modules、aphrodite、glamor、glamorous、radium、react-jss。styled-components 方案使用人數(shù)最多,emotion 方案排第二并且增長勢頭兇猛,而 css-modules 方案在兩年前已經(jīng)停止維護(hù)了,不再推薦。styled-components 的寫法太反直覺,個人更喜歡 emotion。從下載量的增長勢頭來看 emotion 比 styled-components 更快。因此,如果有 CSS in JS 需求的項目,更加推薦 emotion。相信在 2019 年,CSS in JS 方案會更加成熟,我們不妨期待吧。

圖六: npmtrends.com CSS in JS 方案下載量對比

“端”越來越多,GraphQL 繼續(xù)保持高速增長

在移動互聯(lián)網(wǎng)時代來臨之前,傳統(tǒng)意義上的前端只有瀏覽器的 PC 端。移動互聯(lián)網(wǎng)興起后,出現(xiàn)了瀏覽器的 H5 端、iOS 端、Android 端。再后來一些平臺級 App ,比如微信、QQ,推出了自己的 JS-SDK,Hybird 也成為了新的端。近兩年,微信、支付寶、百度、頭條也推出了自己的小程序平臺,小程序也成為了新的端。

每個端都有自個兒的個性,不存在一種大統(tǒng)一的方案,可以適配所有的端。這導(dǎo)致了同一個業(yè)務(wù),需要在 6 個端,開發(fā) 6 次、聯(lián)調(diào) 6 次。

我們假設(shè)有一個這樣的 API,它包含了該業(yè)務(wù)在各個端上所有的數(shù)據(jù),這不就解決了多次聯(lián)調(diào)的問題了嘛。雖然還是需要開發(fā) 6 次,但是現(xiàn)在因為只有 1 個 API,所以聯(lián)調(diào)次數(shù)變成了 1 次。但是該方案的背后的代價是,加載慢、維護(hù)成本高。任意 1 個端,都要獲取其他 5 個端的上差異化的數(shù)據(jù),加載能不慢嘛。如果 API 有改動,可能會影響到 6 個端的代碼,維護(hù)起來也費勁。

稍作改變,現(xiàn)在我們假設(shè),前端可以通過一種標(biāo)準(zhǔn)的 API 查詢語法,精確地獲取任意自定義的數(shù)據(jù),在服務(wù)端通過解析前端查詢語句,返回其自定義的查詢數(shù)據(jù)。雖然還是 6 個端,1 個 API,但是每個端可以只獲取自己的數(shù)據(jù),不就解決了加載慢的問題了嘛。如果某個端需要增改獲取的數(shù)據(jù),只需要修改這個端的查詢語句即可,這不就解決了維護(hù)成本高的問題了嗎。通過定義一種標(biāo)準(zhǔn)的 API 查詢語法,可以使得前端獲取 API 數(shù)據(jù),就像從數(shù)據(jù)庫獲取數(shù)據(jù)一樣方便和靈活。

GraphQL 就定義一套標(biāo)準(zhǔn)的 API 查詢語法,在保持靈活性和可維護(hù)性的前提下,極大的降低了聯(lián)調(diào)成本。

備注:GraphQL 官方使用的例子是,一個業(yè)務(wù)要請求多個 REST 規(guī)范的 API 。但是,國內(nèi)通常使用的不是準(zhǔn)守標(biāo)準(zhǔn)的 REST API ,他們的痛點在國內(nèi)不那么痛,所以改用多端多 API 聯(lián)調(diào)成本高來舉例。

圖七:@helferjs 從REST到GraphQL

因為使用 API 查詢語言 GraphQL 獲取的方法太簡單了,所以連數(shù)據(jù)管理的事省了。也就是說,使用 GraphQL 可以把 Redux、Mobx 干的活給省了。我們可以看到,在 stateofjs 2018 調(diào)研報告中, 把 GraphQL 和 Redux、Mobx 都?xì)w類為一類 —— 數(shù)據(jù)層(Data Layer)。報告中指出,有 47.2% 的 JavaScript 開發(fā)者表示會繼續(xù)使用 Redux,20.4% 會繼續(xù)使用 GraphQL, 5.6% 會繼續(xù)使用 Mobx。需要留意的是,有 62.5% 表示對 GraphQL 感興趣,因此 GraphQL 獲得 stateofjs 的最感興趣獎(Highest Interest)。

圖八:stateofjs 2018 調(diào)研報告 - Data Layer

預(yù)計 2019 年,GraphQL 會繼續(xù)保持高速增長,被更多的開發(fā)者使用。在 npm 2018 調(diào)研報告中,特意指出了 GraphQL 的客戶端庫 Apollo 的下載量保持著高速的增長。

圖九:npm 2018 調(diào)研報告-GraphQL continues hyper-growth

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
2019 年 React 學(xué)習(xí)路線圖
?。。。?!8分鐘為你詳解React、Angular、Vue三大前端技術(shù)
2019年這個崗位平均薪資18160元,卻有人說偏低……
【第2540期】來自Stateofjs調(diào)查,JavaScript 2021年度報告正式發(fā)布!
[開源]一款適用于現(xiàn)代網(wǎng)絡(luò)的網(wǎng)站構(gòu)建工具、輕量級靜態(tài)站點生成器
2018前端工程師成長路線圖
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服