隨着響應式與混合開發的技術體系的興起與逐步完善,終端碎片化時代如期而至。 前端
這裏的‘碎片化’,意指形形色色的媒體終端碎片化了用戶體驗方式和時間,一款產品在各終端的表現層基本一致,略有差別。vue
因而,基於產品多終端的便捷化開發,多端一體化開發體系興起了。在講多端一體化開發體系以前,咱們先回顧一下它的基礎:混合開發。node
混合開發react
混合開發發展到如今,實質上而言,大體可分爲三大類;ios
一 H5嵌入式混合開發(webApp ,native-h5-app ):web
表明技術有:面試
1 webview : webview控件性能越發強大,可控的h5內容體積以及逐漸接近native的性能,讓它逐漸成爲新時代主流的webapp開發方式; 小程序
2 hyiframe : 用iframe開一個窗口,請求服務端的h5頁面,是早年的webapp的主流開發方式。windows
3 highbridge : 有native提供底層調用api,以橋接的方式,讓h5可間接調用底層,直到如今,它仍是主流的webapp開發方式;微信小程序
4 pwa : pwa 其實不算一種技術,它是一種概念——追求無限接近native性能的web pro。這裏把它放在這裏,主要考慮到桌面h5應用。
二 native混合開發(寫的js,build出的是安卓、ios原生):
表明技術有:
1 RN : react-native是早期Facebook團隊推出的混合開發框架,到如今的版本,對安卓和ios都有很好的支持;
2 Weex : vue語法的native混合開發體系。雖然背後沒有特別強大的團隊,但開源大佬多啊;
native意指原生,這裏的原生指的是 安卓原生和ios原生。前陣子很火的一道面試題是 native混合開發的原理,講起來很簡單,實際上真正要更深刻的理解,多少要學些原生的東西。
三 平臺腳本類的小程序 :
表明技術有:
1 微信小程序 : 這個有多火就不用再說了==!
2 支付寶小程序: 據說搞得還不錯,但支付寶用戶多依賴支付寶的支付功能,大多都是把它定位爲一個便捷支付類的產品,而非一個娛樂/社交產品。它沒微信小程序火,不是由於技術上的不足,而是產品的定位。
咱們知道js也是門腳本語言,所謂腳本語法,就是隻能運行在特定的環境下。 例如js只能依賴具有js解釋器的環境(以瀏覽器引擎,node爲主的環境都具有js解釋器的功能),vbs只能依賴windows環境(windows的腳本語言)。
一樣的,微信、支付寶、釘釘等產品自己也是一種環境,微信最早開始提供了它的腳本語言,在語言設計上,與js的語法幾乎一致,所以——咱們用的是js語法,實際上寫的是獨屬於這個環境的腳本。
以上,是主流的三大類混合開發方式;
多端一體化開發體系
多端一體化開發體系,就是以h5與混合開發爲根本,利用它們共同的特性:js語法,去構建的一次開發,多端產出的開發體系。
主流技術有:
1 Rax: 表層用react語法開發,構建依賴weex(沒寫錯,不要奇怪這一點)實現native(安卓、ios)端,同時產出h5端;
也就是 rax => weex+h5 => andriod+ios+h5;
2 Taro.js : taro.js也是一個開源的多端一體化開發體系,版本穩定以來一直很受歡迎。
Taro.js用的也是react語法,但開發一套代碼後,經過taro提供的編譯工具,可build出多套終端的適配代碼:包括微信/百度/支付寶/字節跳動小程序、H五、React-Native ,適用性很廣,極大地解放了前端開發的生產力。
18年起,開源的多端開發框架逐漸增多,出現了很多好產品。這必然是前端應對大前端潮流下終端碎片化的最好方式,所以,掌握和熟練一門體系是做爲一個跟隨時代潮流的前端開發人員所必備的技能之一。
大前端,講在最後
所謂大前端的概念,一開始是node興起後的衍生概念。咱們知道,node做爲服務端js的運行環境,它一開始的主要是作ssr(服務端渲染)這樣的一個表現層;但隨着它的逐步完善和突出的特色,新興架構方式中常有用node做爲前端的一個信息數據的轉發和控制層。這一點其實與多終端相契合——由於多終端因此更須要node去作控制層或中間層,反過來node不只是多終端的根本開發依賴,更是客戶端與服務端親密結合的基礎。
所以,現時代講大前端應當是必備這樣的兩個條件: 1 面向於多終端的技術棧; 2 以node爲核心的服務端技術盞 ;
全文手打,2019年1月9日,散場丶丶。