前端架構師對于框架的技術選型

1、技術選型的背景

前端技術發展日新月異,互聯網上出現的新型框架也比較多,如何讓新招聘的人員能夠直接上手接替項目,或者有相關人員請假,替補人員的接替工作,如何做到不同前端工程師的開發的差異性更小,是我們公司應該考慮的一個問題。

BAT公司的招聘要求都提到了“至少熟悉React、Vue、Angular其中一種前端MVVM框架,有前端工程化與模塊化開發實踐經驗”相關字眼。

我們主要從PC端、公眾號(移動端H5)、小程序三大平臺進行前端的技術選型,并來說說選其技術的幾大優勢。

2、VUE技術的優勢

互聯網前端大潮后,前端出現了3大框架,分別是Angular、React與Vue。

2.1 BAT公司的技術選型

一個好的技術框架選型應該參考優秀的BAT公司,讓我們來通過boss直聘看一下這些大公司都用了什么技術框架。

對比圖1


2.2前端開發三大框架的比較

既然BAT公司都提到了三大框架,那我們來比較一下各框架的優劣勢。

2.2.1 Angular

Angular發展到2019年,已經出現第7版本,它可以媲美iPhone的更新速度,平均一年一個版本,而且不同版本的學習還都有一定的差異,最大的差異就是1和2的版本。Angular的2.0幾乎是一個推翻重做的框架,估計不會有1.X的upgrade方案。所以如果現在新開始的項目采用Angular的話,會是一個很尷尬的時機。同樣,如此大的改動似乎也反面印證了1.X并不是那么好。而angular的教程,一上來就是cli, npm, typescript,一大堆東西砸到你面前,每個東西他都要提一大段,連組件的理念,都要講半天,教程門檻,一下子就被拉高了,導致學習成本很高。

眾多程序員廢棄原因:難調試+笨重。

2.2.2?React

對于跨平臺應用程序開發,React Native是一個理想的選擇,因為它提供了現代功能,您可以輕松地找到資源。

2.2.3 Vue

但是對于其他5%的人來說,Vue.js是超輕量級(但功能非常豐富)的框架,它們結合了AngularJS和React兩者。

它實際上大部分與React類似,但模板與AngularJS(HTML + Mustache)幾乎相同。

實際上,它與AngularJS有很大的不同,但從整體的角度來看,如果您有React或AngularJS經驗,那么很容易理解。

漸進式構建能力是?vue.js?最大的優勢,vue?有一個簡潔而且合理的架構,使得它易于理解和構建。vue?有一個強大的充滿激情人群的社區,這為?vue.js?增加了巨大的價值,使得為一個空白項目創建一個綜合的解決方案變得十分容易。相對于國內來說,相當于華為手機的等級,學習成本比較親民。

從特點上說,Vue有以下特點:

(1)API設計上簡單,語法簡單,學習成本低?;

(2)構建方面不包含路由和ajax功能,使用vuex, vue-router?;

(3)指令(dom)和組件(視圖,數據,邏輯)處理清晰?;

(4)性能好,容易優化?;

(5)基于依賴追蹤的觀察系統,并且異步隊列更新?;

(6)獨立觸發?;

(7)v-model?實時渲染;

(8)適用于:模板和渲染函數的彈性選擇?;

(9)簡單的語法及項目搭建?;

(10)更快的渲染速度和更小的體積。

2.3 vue框架脫穎而出的原因

比較了三個框架后,我們最終在react和vue的選型上做決定,最后我們為什么選擇了vue?這主要考慮以下幾個方面。

(1)小程序可以使用mpvue ,?公眾號H5可以使用vux,app開發可以使用weex,PC端可以用nuxt.js,UI框架可以使用elementUI,以上框架都基于vue開發做到了跨平臺,有更好的代碼復用性,做到了開發習慣的統一;

(2)API文檔簡單,上手容易,學習成本比較親民,華人開發,更接地氣;

(3)BAT公司的招聘要求都有在使用該框架;

3、vue在各個平臺上的技術選型

3.1 小程序的技術選型

3.1.1 wepy

一個類Vue開發風格的小程序框架

特性:

類Vue開發風格

支持組件化開發

支持NPM

支持Promise,?主動選擇是否開啟

支持ES2015

編譯器:支持less/sass/TypeScript等開發

小程序性能優化

框架大小:24.3k+8.9k

wepy-redux數據管理

構建與編譯工具:wepy-cli,編譯配置:wepy.config.js

3.1.2 mpvue

命名意思:mp, mini program的縮寫,mpvue, Vue.js in mini program

框架基于?Vue.js?核心,mpvue?修改了?Vue.js?的?runtime?和?compiler?實現,使其可以運行在小程序環境中,從而為小程序開發引入了整套?Vue.js?開發體驗。

特性:

組件化開發

完整Vue.js開發體驗,全部.vue單文件組件

Vuex數據管理方案

webpack構建機制:自定義構建策略、開發階段hotReload

支持npm

使用?Vue.js?命令行工具?vue-cli?快速初始化項目

H5代碼轉換編譯成小程序目標代碼能力(可使用html開發)

構建與編譯工具:vue-cli,編譯配置:build

配套設施

mpvue-loader

mpvue-webpack-target

postcss-mpvue-wxss

px2rpx-loader

其他

3.1.3 選擇mpvue的原因

特性對比


對比圖2

以上技術對比,故mpvue更具優勢。?

3.2? 公眾號H5的技術選型

Nuxt/Vue SSR,Nuxt.js框架,解決服務器端渲染問題和首屏加載時長問題,實現?Vue SSR。

3.3? App的技術選型

首選WEEX,其次是Flutter,再者是React native。

3.4? PC端的技術選型

Nuxt.js框架,解決服務器端渲染問題和首屏加載時長問題,實現?Vue SSR。

3.5? UI框架的技術選型

PC端:element-ui

APP端:view-ui、vux

3.6? CSS處理器的選型

Stylus,stylus在追求代碼的整潔性上取得了優異性的勝利。

4、基于vue的SSR框架nuxtjs的推薦

Nuxt.js簡單的說是Vue.js的通用框架,最常用的就是用來作SSR(服務器端渲染)。再直白點說,就是Vue.js原來是開發SPA(單頁應用)的,但是隨著技術的普及,很多人想用Vue開發多頁應用,并在服務端完成渲染。這時候就出現了Nuxt.js這個框架,她簡化了SSR的開發難度。還可以直接用命令把我們制作的vue項目生成為靜態html。使用SSR將帶來大量的SEO提升,更好的用戶體驗和更多的機會(與傳統的Vue SPA相比)。?

4.1 服務器端渲染的好處

最主要的原因時SPA(單頁應用)不利于搜索引擎的SEO操作。比如你作一個新聞網站,流量的一個主要來源是通過百度、谷歌、bing這些搜索引擎,但是它們對SPA的抓取并不好,特別是百度根本沒法抓取到SPA的內容頁面,所以我們必須把我們的應用在服務端渲染成適合搜索引擎抓取的頁面,再下載到客戶端。那Nuxt.js適合作新聞、博客、電影、咨詢這樣的需要搜索引擎提供流量的項目。如果你要作移動端的項目,就沒必要使用這個框架了。(其實Nuxt.js個人覺的是一個解決方案)

4.2 什么是SSR?

SSR,即服務器渲染,就是在服務器端將對Vue頁面進行渲染生成html文件,將html頁面傳遞給瀏覽器。

4.2.1?SSR兩個優點

(1)SEO?不同于SPA的HTML只有一個無實際內容的HTML和一個app.js,SSR生成的HTML是有內容的,這讓搜索引擎能夠索引到頁面內容。

(2)更快內容到達時間?傳統的SPA應用是將bundle.js從服務器獲取,然后在客戶端解析并掛載到dom。而SSR直接將HTML字符串傳遞給瀏覽器。大大加快了首屏加載時間。

4.2.2?Nuxt.js的特點

Nuxt.js的官方網站是這樣介紹的:

Nuxt.js?是一個基于?Vue.js?的通用應用框架。 通過對客戶端/服務端基礎架構的抽象組織,Nuxt.js?主要關注的是應用的?UI渲染,它主要有以下特點。

(1)基于?Vue.js

(2)自動代碼分層

(3)服務端渲染

(4)強大的路由功能,支持異步數據【使用更方便】

(5)靜態文件服務

(6)ES6/ES7?語法支持

(7)打包和壓縮?JS?和?CSS

(8)HTML頭部標簽管理

(9)本地開發支持熱加載

(10)集成ESLint

(11)支持各種樣式預處理器:?SASS、LESS、?Stylus等等

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容