Skip to main content

React Native

· 2 min read

在看 Facebook 發表的 React Native 介紹的時候,講者提到為什麼現在 Web 沒辦法提供如他們做的 Paper App 一樣順暢的體驗,主要是三點:

  1. Parallelize work 平行處理 在 Web 上雖然有 web worker,但能做的事很有限。
  2. Gesture Handling 在 Web 上沒有一個好的如何使用手勢操作的指引
  3. Access to Native Capabilities 在 Web 上沒有辦法使用所有在原生平台上可取用的 API。

於是 Facebook 發表了使用 React UI 來開發 iOS/Android App ,他們現在已用在了 Facebook Group App 上。React Native 不像 Cordova/Phonegap 用 WebView 來跑 HTML/JS/CSS,而是直接接上 Native UI widget。

雖然使用 JS 當 controller,但用 async 的方式和 Native UI 做互動。並且互動時是將 UI 各改動一次性完成(原本 React 的 Virtual DOM 特性),從而避免 JS 程式運行阻塞住 UI 而影響效能。

當然兩個平台的 Native UI 元件名稱或參數多有不同,所以不能像 Cordova/PhoneGap 那樣「寫一次,跨多個平台」 ,而是「學一次,跨多個平台」(Learn Once,Write anywhere)。

原始演講內容可以查看

OS: 開發者大會都要留一些爆點啊