1. 程式人生 > >2018年前端流行哪些技術?

2018年前端流行哪些技術?

原文:https://www.zhihu.com/question/268528001/answer/338799288

我自己的經驗呢:

如果專案要求支援低版本的 IE 的話(比如 IE7,8),就用較傳統的jQuery,Bootstrap,jQuery外掛/元件以及類似 Knockout.js 能夠提供資料繫結的 JS 庫,再加上 require.js + gulp 或者 fis3 做模組化和自動化構建。

如果不需要支援低版本 IE 的話,我們主要使用 React:

  1. React – 編寫頁面元件

  2. Redux – 資料流和狀態管理,一般結合 redux-saga 使用

  3. React-router v4 – 前端路由管理(Note:dva 整合了 redux, redux-router 以及 redux-saga。在熟悉了基本的 Redux, Redux-saga, Redux-router 的使用之後,可以嘗試用 dva 替代)

  4. Webpack – 前端構建工具

前端開發我在用到的其他類庫,技術選擇和工具還包括:

  1. SCSS – CSS 預處理,提供 Variables, Mix-in 等功能

  2. ESLint – JavaScript 程式碼質量工具,之前使用 airbnb 配置方案,現在使用 standard 配合方案

  3. StyleLint – CSS/SCSS/Less 程式碼質量工具

  4. EditorConfig – 統一編輯器配置

  5. git – 版本控制工具,結合 git-flow 做分支管理

  6. oh-my-zsh – 提高終端操作效率

  7. Ant Design – React 元件庫,適合中後臺應用開發,極大提高開發效率。另外一個可以參考的是 Material UI,是 Google Material Design 的 React 實現。

  8. Ant Design Pro – 基於 Ant Design 的中後臺專案腳手架,提供了更高層的常用業務元件和最佳實踐,大大減少重複性工作

  9. Animate.css – 流行的動畫樣式庫,實現了包括 Attention(吸睛?),Bouncing(彈跳),Fading(淡入/淡出),Flippers(翻轉),Lightspeed(光速?),Rotating(旋轉),Sliding(滑動),Zoom(縮放)等各種動效。

  10. Alloy Touch – 絲般順滑的觸控運動方案(官方原文),支援緩動效果,使用了 matrix-3D(transformjs),requestAnimationFrame 以及針對 touchmov 事件的優化({ passive: false, …}),體驗與原生非常接近。同時支援各種觸控場景:2D/3D 旋轉,翻頁,步進。我還用它實現了無限滑動的效果。還有一個非常流行的 swiper( nolimits4web/swiper ),但是我沒有用過。不知道跟 Alloy touch 的區別。

  11. AutoPrefixer – PostCSS 外掛,構建時根據 caniuse-lite 資料庫以及你設定的或者預設的瀏覽器列表(browserslist)給 CSS 屬性自動增加瀏覽器廠商字首。一般結合 gulp 或者 webpack 等 Task runner 使用。這樣我們寫 CSS 樣式的時候只需要寫純 CSS 而不需要考慮廠商字首的問題。

  12. Async Flow Control – JavaScript 的非同步流程控制,大概經歷了 callback -> Async.js -> Promise(bluebird -> 原生 Promise 支援) -> yield/generator -> async/await(ES7) 這樣一個過程。推薦 async/await + promise 的解決方案,Node.js 現在(8+)也可以用 Util.promisify() 對原先的 callback API 進行封裝成 Promise。

  13. Axios – 基於 Promise 的 HTTP 客戶端,可以運行於瀏覽器和 Node.js 環境。我主要是在 Node.js 中使用 Axios,替代了 request;瀏覽器中還是使用 Fetch API,還沒有在瀏覽器中嘗試使用 Axios。

  14. Babel + ES6/6+ – 現代 JavaScript 語法和編譯器,Babel 可以讓你使用目前主流瀏覽器尚未全面支援的新的 JavaScript 語法來編寫程式碼,同時幫你編譯成現代瀏覽器都支援的 ES5 語法,還提供了一些 polyfill (通過 core.js)實現了瀏覽器不支援的 feature。

  15. Ava, Chai.js, Jest, Enzyme, Headless Chrome – 測試框架,runner,斷言庫,單元測試,元件測試,端對端測試的一些工具。我用 Ava 替代了 Mocha 用來做測試框架和 Runner,Headless Chrome 替代了 PhantomJS 做端對端測試,斷言主要用 Chai 裡面的 expect 以及 jsonschema 等 Chaijs外掛。

  16. CSS Modules – CSS 模組化方案,避免全域性作用域/衝突,實現顯式依賴。暫時沒有使用 css-in-js 方案。

  17. Data Visualization – 資料視覺化和一些圖表工具,使用最多的還是 ECharts,支援各種圖表,互動和渲染模式,PC 端移動端通吃,文件很全,最近還成為了 Apache 孵化專案。另外還用過 g2,感覺也不錯,現在也能看到原始碼了。g2 是 grammer of graphic 的縮寫,算是 g2 的理論基礎。自己從基礎做起的話,可以使用 d3.js,提供了視覺化的很多基礎模組,基於 SVG。

  18. Docker – 嗯,前端應用部署也可以使用 docker,基於 Nginx image 或者 Node.js image。我以前寫過一個構建 docker 的 shell 指令碼: 分享一個自動構建 docker 並匯出 image 的 shell 指令碼

  19. esprima, espree, acorn, babel-parser – 進行 JS/JSX 語法解析和句法分析的 JS 庫。espree 是 ESLint 使用的 parser,最初 fork 自 Esprima,後來基於 Acorn。Esprima 是最老牌的 js parser,現在使用 TypeScript 實現;Acorn 使用 ES6,特點是模組化,但是 Esprima 的文件比 Acorn 相對要全一些。babel-parser 的解析器 fork 自 Acorn。

  20. Express.js/Koa2/Egg.js/Strongloop – Express 和 Koa 都是 Node.js 的 Web 框架,主要用來實現 API 閘道器,也可以 serve 一些靜態內容。我用過時間最長的是 Express, koa2 也在幾個專案中用過,也瞭解過 loopback, hapi, kraken 等。推薦直接使用 Egg 或者 Strongloop 這種封裝了最佳實踐的企業級 Node.js 框架,而不是自己基於 express 或者 koa 攢一堆元件。

  21. Functional Programming – 函數語言程式設計,這個真的是前端流行… 還有純函式,pure render, pure component,immutable 等概念。參考:lodash 中的 FP 實現。嫌 immutable.js 太重可以試試 immer。

  22. GraphQL/thrift/RESTful API/OpenAPI – 各種介面方案。REST 有一種明日黃花的感覺,雖然還在用,但是感覺早晚被 GraphQL 等取代,畢竟我們真的越來越不關心資料是如何獲取的,而應該關注在 store 如何設計上,專注在領域分析上面。Thrif 支援跨語言 RPC 呼叫,比如跨 Node.js 和 Java 等。嗯,Thrif 支援自動生成樁程式碼,什麼定介面、JSON、MOCK 就都是浮雲了,不需要糾結是否符合 RESTful 規範了。NOTE:Github 提供的 API 之前是 RESTful 的,現在都是 GraphQL 了。

  23. Homebrew – MAC 軟體包管理工具,brew 相當於 Ubuntu 的 apt,RedHat/CentOS 的 yum。

  24. lodash/moment.js – 最常用的兩個 JS 庫了,lodash 是一個現代、高效、模組化的 JS 功能包,moment.js 主要用來處理日期時間相關的操作。都是即可執行在瀏覽器環境,也可以執行在 Node.js 環境。

  25. MongoDb/MySQL/Nginx/Redis – 這些都是常用的伺服器應用。MongoDB 使用 mongoose,MySQL 使用 sequelizer(都是非常優秀的 Node.js 的 ORM 實現),Nginx 會配置反向代理,URL 重寫,快取設定等即可。

  26. npm/yarn – 包管理工具。我傾向於還是使用 npm,搞清楚 npm 的常用 script;搞清楚npm install 時候依賴安裝的流程,以及 package-lock 的作用;能維護和釋出自己的 npm 包;知道 npx 是幹什麼的就可以了。

  27. Performance – 前端效能,善用 Chrome Devtool 中的各種功能,包括 lighthouse。

  28. PostCSS – 本身是一個 CSS 的 parser,最早是從 AutoPrefixer 中抽取出來的,現在已經是 CSS 的瑞士軍刀了。可以結合 gulp, Webpack 等 task runner 使用,能夠解析 CSS/SCSS/Less 等各種語法,提供了 AutoPrefixer(加瀏覽器字首), cssnano(各種嚴壓縮,各種配置), cssnext(用未來的 CSS 語法規範寫當前瀏覽器支援的程式碼), css moudles(模組化),variables, mix-in(類 SCSS 的預處理支援)等各種豐富外掛…沒有你還可以自己寫(提供外掛 boilplate)!

  29. React Native/Flutter – 跨端方案。最近關於 RN 是否涼了?如何評價 Flutter?的問答挺多的,我更關注的可能還是瞭解他們是如何實現的,以及解決了什麼問題吧

  30. source maps – 瞭解 js、css 的 source maps 是如何生成的,相應的規範,在瀏覽器、生產環境除錯、以及異常追蹤系統裡面的使用。

  31. TypeScript – 用 TS 實現的專案越來越多了,特別是一些大型專案,流行程度也是越來越高

  32. WebSocket – 需要長連線、實時通訊的場景

  33. WebStorm/VS Code – IDE/編輯器,使用最多的就是用這兩種了

另外,我覺得大家關注討論比較多的但是我自己還沒有實踐過的前端技術還包括:

  1. rx.js

  2. mobx

  3. 小程式 – 包括 wepy, mpvue 等

  4. rollup(側重 JS library 的打包構建)

  5. parcel(約定式的打包構建工具)

  6. 服務端渲染(SSR)

  7. 前後端同構

  8. createReactApp – React 專案腳手架工具

END

640?wx_fmt=png

相關推薦

2018前端流行哪些技術

原文:https://www.zhihu.com/question/268528001/answ

2018流行的vue前端UI框架

最近在逛各大網站,論壇,SegmentFault等程式設計問答社群,發現Vue.js異常火爆,重複性的提問和內容也很多,小編自己也趁著這個大前端的熱潮,著手學習了一段時間的Vue.js,目前用它正在做自己的公司專案。 學習的過程之中發現繼最熱的 React 元件庫和 Angular 元件庫之後,

2018前端技術總結

還有十幾天 2018 年就結束了。 今天我就來和大家一起回顧一下 2018 年的前端技術趨勢。如果你趕時間,可以直接看文章末尾的總結。 關鍵詞:JavaScript 我們在2017年前端技術總結裡總結的關鍵詞是「狀態管理」; 今天我們給出的關鍵詞是「JavaScript」,含義主要有兩點: 一、CS

2018流行的十大程式語言,其中包括你學的語言嗎?

對於程式設計界的初學者來說,最大的困難是決定從何處入手,或者應掌握哪種語言才能在職場上平步青雲。有時,專業程式設計師也面臨學習一門新語言似乎更卓有成效的情形。 2018年最流行的十大程式語言,其中包括你用的語言嗎? 無論是什麼原因,下面列出了世界上最流行的程式語言,以便了解哪些語言占主導地

2018前端面試總結

dset ner urn content 狀態碼 大量 加載 解構賦值 t對象 2018年前端面試總結 再有兩個月,2018就快過完了,因而有必要在年末對2018年的前端學習做一個總結,本文主要從前端面試中的一些基礎知識來對前端進行相關的總結。本文根據網絡面試題進行總結。

2018前端筆試高頻題精選(二)

今天繼續來發幾道2018年前端筆試高頻題,這些題都是小編下載了今年BATJ、美團、小米等一線網際網路公司前端筆試真題精選出來的,大家一定要好好學學,以備進軍名企之用。   1、規避javascript多人開發函式重名問題   名稱空間 封閉空間 js模組化mvc(資料層、表現層

2018前端筆試高頻題精選(一)

2018年前端筆試高頻題精選(一) 原創: Xuj 軟謀前端 前天 以下精選了2018年一線網際網路公司前端面試11道JS高頻題,並提供了答案供大家參考,供大家學習、收藏。   1、JavaScript中如何檢測一個變數是一個String型別?請

2018機器視覺產業技術現狀、發展趨勢分析及發展前景預測

機器視覺的界定以及構成 機器視覺就是用機器來代替人眼做測量和判斷的系統,它通過光學裝置和非接觸感測器自動獲取目標物件的影象,並由影象處理裝置根據所得影象的畫素分佈、亮度和顏色等資訊進行各種運算處理和判別分析,以提取所需的特徵資訊或根據判別分析結果對某些現場裝置進行運動控制。機器視覺系統中的影象處

2018前端開發回顧

摘要: 前端發展迅速,非常快! 原文:2018年前端開發回顧 作者:前端小智 Fundebug經授權轉載,版權歸原作者所有。 本文將回顧2018年一些重要的前端新聞,事件和JavaScript趨勢。 WebAssembly 釋出 1.0 版本的核心規範 WebAssembly被認為

2018流行的十大程式語言,有你用的嗎?

對於程式設計界的初學者來說,最大的困難是決定從何處入手,或者應掌握哪種語言才能在職場上平步青雲。

2018前端年末小結

前言:2018年即將接近尾聲,現對前端基礎做一個小結與鞏固。 【一、HTML+CSS】: <!-- 宣告為 HTML5 文件,不區分大小寫:<!doctype html> --><!DOCTYPE html><!-- HTML文件的字尾名可以是:.htm -

2018前端開發校招面試總結

原文:syean.cn/2018/12/27/… 2018年人生中最重要的事情之一就是找工作啦,從6月份初斷斷續續開始複習,7月內推開始,9月大批量的筆試、面試,9月初拿到了第一個offer,10月初拿到了自己比較滿意的offer,也是歷經了快4個月。 簡歷投的主要是杭州、上海的一些大廠們,分享一些面試的問

2018全球AI突破性技術TOP10

來源:艾瑞網摘要:聰明的科技公司都不再單一的專注於自己的傳統業務,而是著眼於未來,不斷創新技術,

2018三大顛覆性技術趨勢

譯者注:2017年即將過去,2018年會有哪些讓人驚喜的新技術繼續改變我們的生活?請讀下文。 我一直想知道,機器是否能夠像人類那樣具有真情實感。這一場景無論何時出現,我都不會感到驚奇,真有那麼一天,我也很樂意扮演好自己的角色。——— Pramod Ch

年薪30W,2018前端發展趨勢分析

  網際網路發展如火如荼,前端開發在經歷了前兩年的火熱之後,大浪淘沙,沉澱下來,電腦科學基礎的核

2018 流行的十大程式語言,Java 無可爭議!

無論是什麼原因,下面列出了世界上最流行的程式語言,以便了解哪些語言占主導地位。此列表基於源自TIOBE程式設計社群指數的資料,該指數是表明程式語言受歡迎程度的常用指標。TIOBE通過分析雅虎、必應、維基媒體、亞馬遜、百度和YouTube的資料來排名次。全球專業開

大資料告訴你:2018該學習什麼技術

  前幾天,資料科學家Julia Silge在Stack Overflow官方部落格上分享了一組分析資料,他在文中揭示了快速增長的技術,快速衰落的技術,穩步增長的技術。我們從中可以看到,2018年你學習什麼技術最值錢!  文中資料來源於Stack Overflow 的提問標籤

2018讓你的技術學習快人一步!

新的一年新福利,推薦給大家幾個不同領域的公眾號,機器學習、自然語言處理、Python、Java架

2018一名合格的web前端程序員應該會哪些技術

git 超過 一個 問題 原生 面向對象 單元測試 log native 有朋友讓小編說一說web前端在未來幾年的發展趨向,對於這個問題,恕小編無能為力,web前端技術日新月異,更新非常快,誰也不能預料未來會發生些什麽 小編也只能說在2018年,react native和

【異周話題 第 16 期】2018,你最期待的前端開發技術哪些

pes 社區 發展 col roc ava 前端技術 試用 帶來 【異周話題 第 16 期】2018年,你最期待的前端開發技術有哪些?話題背景2017年已經過去,2018年如約而至。2017年在前端領域裏,react已經逐漸占據主流,Angular 發布了 v4 以及 v5