還有十幾天 2018 年就結束了。
今天我就來和大家一起回顧一下 2018 年的前端技術趨勢。如果你趕時間,可以直接看文章末尾的總結。
關鍵詞:JavaScript
我們在2017年前端技術總結裡總結的關鍵詞是「狀態管理」;
今天我們給出的關鍵詞是「JavaScript」,含義主要有兩點:
一、CSS 失寵
如今,大部分前端已經不再對 CSS 有很大的關注度了,只要會用 flex 和 grid,幾乎就可以解決大部分需求。即使是目前最潮的 CSS Houdini 技術,也是在用 JS 而已。
這在一方面說明前端對 JS 的重視,另一方面又說明 CSS 的易用性,不需要花太多時間,就能快速搭建頁面。不過大部分前端並不想要深入瞭解 CSS,能用就行。
二、JS 還是原來的 JS 嗎
雖然所有前端都在關注 JS,但是並不是所有前端都在寫 JS。已經有很多前端在用 TypeScript 了,還有一些前端在用 Reason、Elm、ClojureScript 和 Dart。
尤其是 TypeScript 的發展勢頭最猛,JS 學得好的前端很快就能上手 TypeScript,很多大公司的前端對 TypeScript 更是愛不釋手。
反觀 JS 自身的發展,最近 TC39 將 class private field(#x)移入了 stage3 階段,令很多 JS 使用者不滿。不滿的原因大部分都是覺得這個語法太奇怪了(而如果使用 TypeScript 就能愉快地使用 private 關鍵字了,雖然兩者並不完全一樣)。
相信在不久的將來,JS 這門語言會越來越無法滿足前端的技術需求,這給其他語言帶來了機會。
接下來說說其他發展趨勢。
趨勢:前端 == 全端
移動 App、移動網頁、PC 應用、PC 網頁、微信小程式、支付寶小程式、百度小程式、各種小程式……
現在各大 App 紛紛模仿 Vue 或 React 釋出自己的小程式,開發的重任自然擺到前端開發者的肩上了。(不然讓後端來做嗎?)
但是問題在於,這些端並不完全一致,有很多細微差別。於是「一次編寫,端端執行」的需求就提上了日程,因此很多大公司的前端都在開發自己的全端方案(如 taro.js、mpvue 等)。
再加上 Electron 對桌面端的支援,React Native 和 Flutter 對手機端的支援,前端實質上就是全端,幾乎所有需要圖形介面的地方都被前端佔領了。
趨勢:前端框架趨於平穩
Angular / React / Vue 三者的粉絲已經不怎麼爭論了,公司用哪個開發者就用哪個,畢竟很多公司都已經有了 Angular / React / Vue 的一年以上的專案了,想換框架也是難事。
而且三者的生態環境也都比較完備和穩定了。不存在你能做而我做不到的點,所以大家都已經專注於業務開發,而不是框架的選擇了。
所以只要你會其中任何一個框架,都有飯吃。如果一個都不會,就很難找到工作了。
趨勢:函數語言程式設計
React 帶起了一股函數語言程式設計的風潮,然而如果你問大部分前端「什麼是函式式」,肯定有人還是一知半解支支吾吾的。這是學習能力強的人的一個大機會。
前端的函式式還處於初級階段,由於 JS 這門語言雖然有函式式的影子,但是依然缺失很多函式式語言必須具備的特性,這也是一些 JS 開發者轉向 ReasonML 的原因。
趨勢:自家元件庫
今年各大公司均有自家的元件庫(阿里的 Ant Design、餓了麼的 Element UI、TalkingData 的 iView、滴滴的 Cube UI、有讚的 Vant 和 Zent),這得益於 Angular / React / Vue 的成熟的元件化能力。這也意味著對前端開發者的要求提高了,不僅需要會用別人的 UI 庫,還需要自己能開發 UI 庫。
元件庫的興起也使得前端終於開始重視「單元測試」這一基本的測試手段了,很多人都會使用 jest 和 mocha 來進行單元測試。
趨勢:對 Node.js 的使用更為理智
現在前端開發者不像之前幾年對 Node.js 趨之若鶩了,而是隻在必要的時候使用 Node.js。因為前端已經理解就算學會了 JS 也不代表能手上 Node.js,而且 Node.js 也越來越專業化了,其領域知識跟前端幾乎沒有重合的部分。
趨勢:Webpack 的封裝
由於 webpack 配置的複雜性,越來越多的工具都把 webpack 進行了簡化和封裝,如 Vue CLI 3、Angular CLI 和 create-react-app。因此新人在建立專案的時候幾乎不會遇到複雜的 webpack 配置問題,一個成熟的前端團隊也只需要一兩個人維護 webpack 的配置即可。
相信不久之後,這些配置會進一步簡化。
總結
總之,前端在經歷了一兩年的百花齊放後,逐漸趨於穩定,大家分別使用自己喜歡的框架,打造趁手的 UI 元件,並且開始使用 TypeScript 和單元測試來提高程式碼的質量,以做出更好的產品。對後端知識沒有了解的前端也不再盲目投入 Node.js 的懷抱了,而是認真做好前端業務;Node.js 的使用者也更專注於後端開發,這是雙方都在朝著專業化方向進步的體現。
如果你對文章中提到的 React、Vue、TypeScript、UI 框架和單元測試等知識感興趣,可以我們的 Vue 交流群 5 或者 React 交流群 2(請儘量只加一個群)
以上就是我們在 2018 年觀察到的一些前端技術趨勢,不一定全面,如有錯誤歡迎指正。