你不知道的前端大事記!

不知道大家都聽沒聽說過這句哈:前端的江湖總是不缺話題,且從沒有消停過!!!

你要說沒聽說過,那就對了,這句話是我剛剛說的。但是這句話想必大家都聽說過:鐵打的後臺,流水的前端。

什麼意思?就是後臺技術幾乎沒什麼變天,前端技術一天一個樣,今天用這個,明天用那個。變化多端的前端,讓我們前端程序員在爬坑的路上,顛簸流離。

我們今天就一起細數一下最近幾天發生的幾件大事。

一、Airbnb 棄用 RN,迴歸原生

你不知道的前端大事記!

就在 6 月 20 日,Airbnb 技術團隊在 Medium 上宣佈,Airbnb 放棄使用 React Native,將回歸到使用基於原生技術的自有框架開發 App。理由如下:

React Native 並不能真正實現完全的跨平臺抽象,有時候仍然需要針對特定平臺單獨編寫代碼來解決問題。這就間接要求他們的工程師必須熟悉三個平臺才能真正用好 React Native,然而絕大多數開發者只熟悉一兩個平臺,久而久之便引發了一系列的問題。

說實話,相信使用 RN 的同學都很瞭解 Airbnb 描述的上述問題,確實由於平臺和交互的各種原因,RN 給個別一些組件在 Android 平臺和 iOS 平臺提供的使用方式和組件都是有差異的,導致對於一些界面需要我們單獨判斷編寫。確實需要開發人員同時都得了解 Android 和 iOS 的特性與異同,同時開發者還得了解 RN 技術。

RN 的坑確實很多,不知道現在有多少人還在坑裡,或者在爬坑和填坑的路上,但是大家也不要氣餒,因為接下來這件事,可能會讓你在 RN 的路上看到一些希望。

二、Facebook 正在重構 RN

最近 React 的工程經理 Sophie Alpert 在其官方博客上宣佈,Facebook 要重構 React Native,讓它加更輕量、更靈活性、更適應 JavaScript 生態圈的發展。據說在過去的幾年裡,他們發現最初的設計原則

成為 JavaScript 和原生應用之間的橋樑,加大了某些特性的開發難度。比如:

異步橋接意味著不能直接將 JS 邏輯與很多原生 API 集成在一起,因為這些原生 API 是同步的。

另外,批量橋接意味著,RN 應用程序調用原生實現的函數會更加困難。對於完全使用 RN 構建的應用程序,這些限制還是可以承受的,但對於在 RN 與現有應用程序代碼之間進行復雜集成的應用程序,情況則變得相當糟糕。

因此,Facebook 正在對 React Native 進行大規模重構,讓架構變得更加靈活,並更好地與混合 JavaScript / 原生應用開發中的原生基礎設施集成。

通過這個項目,他們將應用在過去 5 年中學到的知識,逐步讓架構更現代化。他們正在對 React Native 內部進行大量的重寫,當然大部分工作都是在底層進行的,所以現有的 React Native 應用程序幾乎不需要做出更改。

為了使 RN 更輕量化並能更好地適應現有的原生應用,此次重構主要從三個方面進行:

  • 首先,改變線程模型。UI 更新不再需要在三個不同的線程上執行,而是可以在任意線程上同步調用 JavaScript 進行優先更新,同時將低優先級工作推出主線程,以便保持對 UI 的響應
  • 其次,將異步渲染功能引入 React Native 中,允許執行多個渲染並簡化異步數據處理
  • 最後,簡化橋接,讓它更快、更輕量。原生和 JavaScript 之間的直接調用效率更高,並且可以更輕鬆地構建調試工具,如跨語言堆棧跟蹤

三、React 被 VUE 反超?

你不知道的前端大事記!

就在 Airbnb 在棄用 RN 之時,React 的star 數也被 VUE 反超。就在近幾天,Vue.js 在 GitHub 上的 star 數量終於超過了 React.js 的 star 數量,並在不久之後雙雙破了 10W。

Vue.js 作為一箇中國大神尤雨溪開發的前端框架,是在 2014 年 2 月份開源的,Vue.js 以其比 React 更簡單,更方便,非常的火爆。在過去的兩年中,Vue 的增長速度比其他任何主流的 JavaScript 框架都快,最近趕上了 Angular.js,並逐漸縮小了它與 Angular 和 React 之間的差距。

但是,star 數並不能代表一切,根據 NPM 軟件包的下載量來衡量,React 仍然在實際使用方面佔據主導地位。它即將超過每月 1000 萬的巨大下載量,並且還一直保持著高速的增長。

四、Flutter 發佈首個預覽版

你不知道的前端大事記!

Flutter 是谷歌的移動 UI 框架,可以快速在 iOS 和 Android 上構建高質量的原生用戶界面。 Flutter 可以與現有的代碼一起工作。在全世界,Flutter 正在被越來越多的開發者和組織使用,並且 Flutter 是完全免費、開源的。

它也是構建未來的 Google Fuchsia 應用的主要方式。

框架特性可以說是:

1、快速開發

Flutter 的熱重載幫助你快捷方便的試驗、重構 UI、添加特性和修復 bug。在仿真器、模擬器和 ios、android 硬件上體驗亞秒級的重載,而不會丟失狀態。

2、絢麗 UI

通過 Flutter 內建的漂亮的質感設計和 Cupertino(ios-flavor)小工具、豐富的動畫 api,平滑的自然滾動和平臺感知,讓用戶感到滿意。

3、響應式框架

通過 Flutter 的現代響應式 (Reactive) 框架和豐富的平臺佈局和基礎組件輕鬆構建您的用戶界面。用強大而靈活的 apis 解決 2D、動畫、手勢、效果等難題。

4、訪問原生功能

通過平臺 api、第三方 sdk 和原生代碼使您的應用變得生動起來。Flutter 讓您可以重用您現有的 java、swift 和 Objc 代碼,並在 iOS 和 Android 上訪問原生特性和 SDK。

Flutter 可以說是現在越來越到得重視,也有要火的趨勢,但是其官方編程語言為 Dart,也是一門全新的語言。所以說,上手成本比較高,對於移動端開發人員,語言以及框架都是全新的,整個技術棧的積累也都得從頭開始。

Flutter 對於移動開發人員,最誘惑的能力是其完全的跨平臺特性,不同於 RN 這種一處學到處寫,它是一處寫到出跑。

另外 Flutter 不同於市面上的其他解決方案,之前我們最常見的無非就是兩類,一個就是:使用平臺支持的 Web 技術,還一個就是本地跨平臺,比如:RN、Weex 等。但是 Flutter 跨平臺最核心的部分,是它的高性能渲染引擎(Flutter Engine)。Flutter 不使用瀏覽器技術,也不使用 Native 的原生控件,它使用自己的渲染引擎來繪製 widget。

對於 Android 平臺,Flutter 引擎的 C/C++ 代碼是由 NDK 編譯,在 iOS 平臺,則是由 LLVM 編譯,兩個平臺的 Dart 代碼都是 AOT 編譯為本地代碼,Flutter 應用程序使用本機指令集運行。

Flutter 正是是通過使用相同的渲染器、框架和一組 widget,來同時構建 iOS 和 Android 應用,而無需維護兩套獨立的代碼庫。

最後

最後,看到這裡,看到前端大事記之後,不知道你有什麼想法?前端的變化多端,前端技術的層出不窮,是不是感覺前端技術變天比女人變臉還快?但是,其實也不用焦慮,也不用擔心,一個技術的成熟到完全流行起來,是需要時間的,是需要過程的,這段時間和過程,就是你提高自己的最好時機。

面對千變萬化的前端,我對大家只有一個忠告和建議:以不變應萬變,這個不變的就是學習

總結

前端工程師還處在市場的大缺口上,堅持每天學習,想法決定方向 努力造就結果 只要願意學習和研究 即使是零基礎的新手 通過學習也能搭建屬於自己的網站或者參與相關工作,畢竟搭建網站也不是什麼很難的事情,網站的源代碼修改也可以很快熟練。


分享到:


相關文章: